<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-04-15T19:48:09.506867" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-sanity.txt">
<suite id="s1-s1" name="MD SAL NSF OF10" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:48:09.925968" 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-15T19:48:09.925666" elapsed="0.000372"/>
</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-15T19:48:09.928473" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:09.928209" elapsed="0.000331"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:09.928180" elapsed="0.000390"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:48:09.929036" 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-15T19:48:09.929162" 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-15T19:48:09.928727" elapsed="0.000466"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:48:09.929756" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.133" 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-15T19:48:09.929332" elapsed="0.000476"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:48:09.930355" 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-15T19:48:09.929950" elapsed="0.000433"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:48:09.931348" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:48:09.931433" 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-15T19:48:09.930939" elapsed="0.000524"/>
</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-15T19:48:09.931611" elapsed="0.000375"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:48:09.932843" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:48:10.602412" 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 Wed Apr 15 19:48:10 UTC 2026

  System load:  0.84               Processes:             106
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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-38640-217-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-15T19:48:09.932480" elapsed="0.670027"/>
</kw>
<msg time="2026-04-15T19:48:10.602583" 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-15T19:48:09.932133" elapsed="0.670529"/>
</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-15T19:48:09.930583" elapsed="0.672200"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:48:10.603156" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-15T19:48:11.794083" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:48:11.794452" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:48:11.794561" 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-15T19:48:10.602955" elapsed="1.191663"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:48:11.795044" elapsed="0.000996"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:48:11.797069" 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-15T19:48:11.796379" elapsed="0.000937"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:48:11.797867" elapsed="0.000054"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:48:11.797514" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:11.797454" elapsed="0.000615"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:48:11.798452" elapsed="0.000073"/>
</return>
<status status="PASS" start="2026-04-15T19:48:11.798201" elapsed="0.000403"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:11.798162" elapsed="0.000502"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:48:11.798776" elapsed="0.000037"/>
</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-15T19:48:11.802629" elapsed="0.000485"/>
</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-15T19:48:11.803308" elapsed="0.000240"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:48:11.803717" elapsed="0.000162"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:48:11.799458" elapsed="0.004516"/>
</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-15T19:48:09.927658" elapsed="1.876449"/>
</kw>
<msg time="2026-04-15T19:48:11.804185" 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-15T19:48:09.927007" elapsed="1.877259"/>
</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-15T19:48:09.926512" elapsed="1.877868"/>
</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-15T19:48:11.807061" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:11.806710" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:11.806683" elapsed="0.000493"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:48:11.807544" 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-15T19:48:11.807694" 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-15T19:48:11.807344" elapsed="0.000407"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:48:11.808472" 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.133" 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-15T19:48:11.807925" elapsed="0.000613"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:48:11.809262" 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-15T19:48:11.808717" elapsed="0.000581"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:48:11.810434" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:48:11.810549" 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-15T19:48:11.810038" elapsed="0.000544"/>
</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-15T19:48:11.810784" elapsed="0.000454"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:48:11.812402" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:48:12.173135" 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 Wed Apr 15 19:48:10 UTC 2026

  System load:  0.84               Processes:             106
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:48:10 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:48:11.811918" elapsed="0.361364"/>
</kw>
<msg time="2026-04-15T19:48:12.173350" 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-15T19:48:11.811435" elapsed="0.361978"/>
</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-15T19:48:11.809560" elapsed="0.363947"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:48:12.173872" 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-15T19:48:12.206573" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-15T19:48:12.206895" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:48:12.207003" 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-15T19:48:12.173666" elapsed="0.033392"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:48:12.207400" elapsed="0.000599"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:48:12.209032" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:48:12.208345" elapsed="0.000786"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:48:12.209634" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:48:12.209323" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:12.209264" elapsed="0.000581"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:48:12.210236" elapsed="0.000069"/>
</return>
<status status="PASS" start="2026-04-15T19:48:12.209979" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:12.209941" elapsed="0.000504"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:48:12.210526" 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-15T19:48:12.215692" elapsed="0.000874"/>
</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-15T19:48:12.216943" elapsed="0.000192"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:48:12.217255" elapsed="0.000098"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:48:12.211233" elapsed="0.006173"/>
</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-15T19:48:11.806014" elapsed="0.411484"/>
</kw>
<msg time="2026-04-15T19:48:12.217556" 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-15T19:48:11.805228" elapsed="0.412380"/>
</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-15T19:48:11.804595" elapsed="0.413097"/>
</kw>
<status status="PASS" start="2026-04-15T19:48:09.926222" elapsed="2.291543"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:48:12.218282" 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-15T19:48:12.217904" elapsed="0.000404"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:48:12.218813" 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-15T19:48:12.218462" elapsed="0.000393"/>
</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-15T19:48:12.220480" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:48:12.220559" 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-15T19:48:12.220199" elapsed="0.000383"/>
</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-15T19:48:12.220709" elapsed="0.000337"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:48:12.221838" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:48:12.611226" 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 Wed Apr 15 19:48:10 UTC 2026

  System load:  0.84               Processes:             106
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:48:12 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:48:12.221510" elapsed="0.389949"/>
</kw>
<msg time="2026-04-15T19:48:12.611547" 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-15T19:48:12.221183" elapsed="0.390442"/>
</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-15T19:48:12.219792" elapsed="0.391981"/>
</kw>
<msg time="2026-04-15T19:48:12.611828" 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-15T19:48:12.219406" elapsed="0.392471"/>
</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-15T19:48:12.219027" elapsed="0.392924"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:48:12.612591" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-04-15T19:48:12.635392" 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-15T19:48:12.612175" elapsed="0.023351"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:48:12.679142" level="INFO">sudo mn --controller=remote,ip=10.30.170.185 --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-15T19:48:12.635896" elapsed="0.043309"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:48:13.015098" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.185:6653
Unable to contact the remote controller at 10.30.170.185:6633
Setting remote controller to 10.30.170.185: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-15T19:48:12.679345" elapsed="0.336005"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-04-15T19:48:09.924433" elapsed="3.091088"/>
</kw>
<suite id="s1-s1-s1" name="010 Restconf Inventory" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:48:13.050304" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f67845d0&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-15T19:48:13.049910" elapsed="0.000620"/>
</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-15T19:48:13.061047" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:13.262658" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:13.665255" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:13.667892" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:13.057804" elapsed="0.619510">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:13.678340" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:13.677527" elapsed="0.000905"/>
</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-15T19:48:13.678697" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:13.678477" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:13.677478" elapsed="0.001350"/>
</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-15T19:48:13.678995" 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-15T19:48:13.679543" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:13.679218" elapsed="0.000407"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:13.679110" elapsed="0.000559"/>
</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-15T19:48:13.057380" elapsed="0.622482">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:15.694035" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:15.895328" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:16.297281" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:16.299918" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:15.690573" elapsed="0.614682">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:16.306129" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:16.305537" elapsed="0.000749"/>
</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-15T19:48:16.306648" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:16.306347" elapsed="0.000447"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:16.305475" 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-15T19:48:16.307105" 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-15T19:48:16.307674" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:16.307406" elapsed="0.000419"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:16.307272" elapsed="0.000616"/>
</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-15T19:48:15.689869" elapsed="0.618240">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:18.324936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:18.526306" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:18.929000" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:18.930924" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:18.321548" elapsed="0.613885">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:18.936031" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:18.935615" elapsed="0.000502"/>
</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-15T19:48:18.936344" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:18.936156" elapsed="0.000261"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:18.935576" elapsed="0.000870"/>
</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-15T19:48:18.936606" 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-15T19:48:18.937011" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:18.936833" elapsed="0.000255"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:18.936715" elapsed="0.000413"/>
</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-15T19:48:18.320836" elapsed="0.616525">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:20.955820" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:21.157092" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:21.559003" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:21.561159" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:20.952646" elapsed="0.613688">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:21.567234" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:21.566617" 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-15T19:48:21.567777" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:21.567430" elapsed="0.000476"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:21.566559" elapsed="0.001397"/>
</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-15T19:48:21.568220" 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-15T19:48:21.569004" elapsed="0.000061"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:21.568617" elapsed="0.000523"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:21.568454" elapsed="0.000727"/>
</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-15T19:48:20.951531" elapsed="0.617801">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:23.587396" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:23.788822" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.190891" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.193504" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:23.584665" elapsed="0.613886">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:24.199487" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:24.198852" elapsed="0.000772"/>
</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-15T19:48:24.200008" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:24.199680" elapsed="0.000449"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:24.198796" elapsed="0.001380"/>
</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-15T19:48:24.200311" 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-15T19:48:24.200580" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:24.200455" elapsed="0.000232"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:24.200388" elapsed="0.000329"/>
</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-15T19:48:23.584033" elapsed="0.616805">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:48:24.200947" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:13.051076" elapsed="11.149971">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:13.050616" elapsed="11.150632">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:24.214259" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.415532" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.817574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.820335" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:24.211597" elapsed="0.613891">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:48:24.825981" elapsed="0.000062"/>
</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-15T19:48:24.826335" elapsed="0.000046"/>
</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-15T19:48:24.826674" elapsed="0.000045"/>
</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-15T19:48:24.211190" elapsed="0.615786">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:26.846159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:27.047488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:27.449269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:27.451471" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:26.843296" elapsed="0.613408">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:48:27.457325" elapsed="0.000077"/>
</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-15T19:48:27.457710" elapsed="0.000082"/>
</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-15T19:48:27.458098" elapsed="0.000093"/>
</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-15T19:48:26.842540" elapsed="0.615911">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:29.474695" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:29.676158" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:30.079050" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:30.081501" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:29.471824" elapsed="0.614848">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:48:30.087227" elapsed="0.000067"/>
</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-15T19:48:30.087585" elapsed="0.000046"/>
</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-15T19:48:30.087995" elapsed="0.000057"/>
</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-15T19:48:29.471293" elapsed="0.617003">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:32.108892" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:32.310355" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:32.712941" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:32.715434" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:32.105462" elapsed="0.615490">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:48:32.721471" elapsed="0.000069"/>
</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-15T19:48:32.721919" elapsed="0.000053"/>
</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-15T19:48:32.722283" elapsed="0.000045"/>
</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-15T19:48:32.104804" elapsed="0.617779">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:34.743419" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:34.945246" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:35.347911" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:35.349847" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:34.740175" elapsed="0.614845">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:48:35.355566" elapsed="0.000061"/>
</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-15T19:48:35.355953" elapsed="0.000048"/>
</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-15T19:48:35.356298" elapsed="0.000044"/>
</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-15T19:48:34.739417" elapsed="0.617164">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:48:35.356835" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:24.201994" elapsed="11.155052">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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.359946" 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-15T19:48:35.358820" elapsed="0.001154"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="NOT RUN" start="2026-04-15T19:48:35.360216" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:48:35.360060" elapsed="0.000206"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:35.360038" elapsed="0.000251"/>
</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-15T19:48:35.360421" elapsed="0.000219"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-04-15T19:48:35.361653" 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-15T19:48:35.361132" elapsed="0.000593">'6595' does not contain '-'</status>
</kw>
<msg time="2026-04-15T19:48:35.361835" 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-15T19:48:35.360801" elapsed="0.001059"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:48:35.362345" 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-15T19:48:35.362001" elapsed="0.000370"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:48:35.362867" 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-15T19:48:35.362532" elapsed="0.000362"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:48:35.363378" 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-15T19:48:35.363024" elapsed="0.000447"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<msg time="2026-04-15T19:48:35.364033" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.363628" elapsed="0.000454"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:48:35.364461" 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-15T19:48:35.364217" elapsed="0.000288"/>
</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-15T19:48:35.365132" 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-15T19:48:35.364789" elapsed="0.000389"/>
</kw>
<status status="PASS" start="2026-04-15T19:48:35.364570" elapsed="0.000642"/>
</branch>
<status status="PASS" start="2026-04-15T19:48:35.364553" elapsed="0.000684"/>
</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-15T19:48:35.358014" elapsed="0.007269"/>
</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-15T19:48:24.201487" elapsed="11.163846">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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.366416" 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-15T19:48:35.365984" elapsed="0.000461"/>
</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-15T19:48:35.376329" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.577829" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.979913" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.982000" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:35.373773" elapsed="0.613322">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:35.987959" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:35.987360" elapsed="0.000732"/>
</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-15T19:48:35.988444" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:35.988150" elapsed="0.000414"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:35.987302" elapsed="0.001309"/>
</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-15T19:48:35.988900" 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-15T19:48:35.989474" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:35.989209" elapsed="0.000386"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:35.989071" elapsed="0.000583"/>
</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-15T19:48:35.373266" elapsed="0.616632">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:38.005176" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:38.206620" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:38.608816" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:38.611461" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:38.001543" elapsed="0.614395">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:38.616491" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:38.616120" elapsed="0.000455"/>
</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-15T19:48:38.616812" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:38.616610" elapsed="0.000278"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:38.616081" elapsed="0.000836"/>
</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-15T19:48:38.617077" 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-15T19:48:38.617441" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:38.617269" elapsed="0.000249"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:38.617183" elapsed="0.000372"/>
</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-15T19:48:38.000703" elapsed="0.616985">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:40.636245" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:40.838201" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:41.241018" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:41.243897" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:40.632818" elapsed="0.616711">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:41.251439" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:41.250852" elapsed="0.000724"/>
</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-15T19:48:41.251951" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:41.251631" elapsed="0.000439"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:41.250781" elapsed="0.001336"/>
</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-15T19:48:41.252372" 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-15T19:48:41.252998" elapsed="0.000102"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:41.252687" elapsed="0.000513"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:41.252547" elapsed="0.000729"/>
</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-15T19:48:40.631528" elapsed="0.622002">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:43.267680" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:43.469712" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:43.872467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:43.875231" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:43.264440" elapsed="0.615856">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:43.881222" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:43.880625" elapsed="0.000732"/>
</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-15T19:48:43.881710" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:43.881412" elapsed="0.000449"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:43.880519" elapsed="0.001388"/>
</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-15T19:48:43.882159" elapsed="0.000044"/>
</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-15T19:48:43.882707" elapsed="0.000083"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:43.882443" elapsed="0.000426"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:43.882319" elapsed="0.000610"/>
</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-15T19:48:43.263576" elapsed="0.619559">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:45.898408" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.100015" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.502372" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.505003" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:45.894875" elapsed="0.615093">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:46.510879" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:46.510242" elapsed="0.000777"/>
</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-15T19:48:46.511426" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:46.511074" elapsed="0.000472"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:46.510185" elapsed="0.001415"/>
</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-15T19:48:46.511869" 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-15T19:48:46.512328" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:46.512149" elapsed="0.000256"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:46.511975" elapsed="0.000469"/>
</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-15T19:48:45.894033" elapsed="0.618553">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:48:46.512752" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:35.366616" elapsed="11.146275">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:35.365587" elapsed="11.147561">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:46.514917" 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-15T19:48:46.514189" elapsed="0.000768"/>
</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-15T19:48:46.529008" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.730366" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:47.132883" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:47.135115" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:46.526517" elapsed="0.613629">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:47.140759" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:47.140337" 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-15T19:48:47.141092" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:47.140888" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:47.140296" elapsed="0.000898"/>
</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-15T19:48:47.141353" 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-15T19:48:47.141712" elapsed="0.000049"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:47.141538" elapsed="0.000273"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:47.141456" elapsed="0.000393"/>
</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-15T19:48:46.526005" elapsed="0.615987">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:49.156532" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:49.358016" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:49.760058" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:49.762408" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:49.153819" elapsed="0.614376">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:49.769136" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:49.768476" elapsed="0.000803"/>
</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-15T19:48:49.769646" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:49.769336" elapsed="0.000491"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:49.768418" elapsed="0.001460"/>
</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-15T19:48:49.770194" 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-15T19:48:49.770823" elapsed="0.000050"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:49.770496" elapsed="0.000469"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:49.770365" elapsed="0.000668"/>
</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-15T19:48:49.153182" elapsed="0.618001">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:51.787214" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:51.988815" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:52.391227" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:52.393427" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:51.783591" elapsed="0.615460">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:52.400042" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:52.399393" elapsed="0.000792"/>
</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-15T19:48:52.400568" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:52.400246" elapsed="0.000450"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:52.399325" elapsed="0.001452"/>
</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-15T19:48:52.401117" 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-15T19:48:52.401726" elapsed="0.000082"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:52.401441" elapsed="0.000449"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:52.401294" elapsed="0.000659"/>
</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-15T19:48:51.782711" elapsed="0.619474">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:54.418312" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:54.619866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:55.022786" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:55.025129" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:54.415211" elapsed="0.615410">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:55.031542" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:55.030956" elapsed="0.000724"/>
</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-15T19:48:55.032150" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:55.031766" elapsed="0.000533"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:55.030891" elapsed="0.001454"/>
</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-15T19:48:55.032608" 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-15T19:48:55.033222" elapsed="0.000036"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:55.032952" elapsed="0.000370"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:55.032806" elapsed="0.000556"/>
</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-15T19:48:54.414504" elapsed="0.619010">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:57.050835" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.252383" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.654920" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.657155" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:57.047017" elapsed="0.614629">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:57.662320" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:57.661871" 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-15T19:48:57.662647" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:57.662448" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:57.661825" elapsed="0.000947"/>
</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-15T19:48:57.662938" elapsed="0.000041"/>
</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-15T19:48:57.663320" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:57.663146" elapsed="0.000329"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:57.663059" elapsed="0.000455"/>
</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-15T19:48:57.046180" elapsed="0.617479">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:48:57.663823" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:46.515209" elapsed="11.148751">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:46.513565" elapsed="11.150678">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:57.665916" 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-15T19:48:57.665156" elapsed="0.000799"/>
</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-15T19:48:57.677372" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.878865" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:58.281345" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:58.283781" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:57.674833" elapsed="0.614045">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:58.289808" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:58.289173" elapsed="0.000774"/>
</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-15T19:48:58.290304" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:48:58.290006" elapsed="0.000413"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:48:58.289108" elapsed="0.001357"/>
</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-15T19:48:58.290717" elapsed="0.000110"/>
</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-15T19:48:58.291370" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:48:58.291085" elapsed="0.000385"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:48:58.290953" elapsed="0.000556"/>
</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-15T19:48:57.674301" elapsed="0.617356">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:00.307380" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:00.508905" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:00.911155" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:00.913106" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:00.303862" elapsed="0.614866">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:00.919518" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:00.919021" elapsed="0.000625"/>
</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-15T19:49:00.920009" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:00.919704" elapsed="0.000422"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:00.918970" elapsed="0.001203"/>
</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-15T19:49:00.920429" elapsed="0.000044"/>
</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-15T19:49:00.921020" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:00.920718" elapsed="0.000424"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:00.920590" elapsed="0.000612"/>
</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-15T19:49:00.302994" elapsed="0.618422">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:02.937174" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:03.138716" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:03.540644" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:03.542942" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:02.933943" elapsed="0.613972">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:03.548720" elapsed="0.000136"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:03.548180" elapsed="0.000749"/>
</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-15T19:49:03.549271" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:03.548986" elapsed="0.000416"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:03.548124" elapsed="0.001331"/>
</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-15T19:49:03.549596" 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-15T19:49:03.549881" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:03.549748" elapsed="0.000187"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:03.549673" elapsed="0.000291"/>
</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-15T19:49:02.933072" elapsed="0.616996">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:05.565647" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:05.767030" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:06.169511" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:06.171645" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:05.562795" elapsed="0.613974">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:06.177535" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:06.177030" elapsed="0.000635"/>
</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-15T19:49:06.178036" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:06.177724" elapsed="0.000430"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:06.176976" elapsed="0.001223"/>
</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-15T19:49:06.178453" elapsed="0.000044"/>
</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-15T19:49:06.179049" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:06.178772" elapsed="0.000397"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:06.178615" elapsed="0.000614"/>
</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-15T19:49:05.562141" elapsed="0.617301">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:08.192682" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:08.393999" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:08.795960" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:08.798069" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:08.189515" elapsed="0.614063">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:08.804416" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:08.803877" elapsed="0.000672"/>
</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-15T19:49:08.804932" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:08.804604" elapsed="0.000448"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:08.803820" elapsed="0.001278"/>
</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-15T19:49:08.805354" 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-15T19:49:08.805933" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:08.805635" elapsed="0.000422"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:08.805513" elapsed="0.000602"/>
</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-15T19:49:08.188680" elapsed="0.617642">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:49:08.806633" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:57.666201" elapsed="11.140721">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:48:57.664548" elapsed="11.142753">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:08.812107" 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-15T19:49:08.808076" elapsed="0.004093"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:49:08.816885" 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-15T19:49:08.812313" elapsed="0.004627"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:49:08.817413" 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-15T19:49:08.817082" elapsed="0.000357"/>
</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-15T19:49:08.827354" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:09.029404" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:09.431277" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:09.432796" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:08.824685" elapsed="0.610381">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:09.435405" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:09.435177" elapsed="0.000287"/>
</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-15T19:49:09.435612" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:09.435489" elapsed="0.000175"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:09.435154" elapsed="0.000531"/>
</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-15T19:49:09.435814" 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-15T19:49:09.436057" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:09.435940" elapsed="0.000172"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:09.435885" elapsed="0.000253"/>
</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-15T19:49:08.824180" elapsed="0.612051">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:11.451956" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:11.653439" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:12.055794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:12.058497" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:11.448351" elapsed="0.615336">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:12.064348" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:12.063916" elapsed="0.000522"/>
</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-15T19:49:12.064683" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:12.064477" elapsed="0.000301"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:12.063867" elapsed="0.000941"/>
</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-15T19:49:12.064971" 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-15T19:49:12.065351" elapsed="0.000027"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:12.065168" elapsed="0.000258"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:12.065079" elapsed="0.000387"/>
</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-15T19:49:11.447410" elapsed="0.618205">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:14.081457" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:14.283137" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:14.685260" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:14.687546" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:14.078128" elapsed="0.614436">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:14.693444" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:14.692893" elapsed="0.000683"/>
</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-15T19:49:14.693948" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:14.693632" elapsed="0.000437"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:14.692837" elapsed="0.001278"/>
</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-15T19:49:14.694370" 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-15T19:49:14.694944" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:14.694647" elapsed="0.000421"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:14.694527" elapsed="0.000600"/>
</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-15T19:49:14.077306" elapsed="0.618029">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:16.711799" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:16.913453" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:17.316220" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:17.318504" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:16.708425" elapsed="0.615360">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:17.324646" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:17.324067" elapsed="0.000764"/>
</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-15T19:49:17.325080" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:17.324881" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:17.324010" elapsed="0.001174"/>
</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-15T19:49:17.325346" 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-15T19:49:17.325715" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:17.325539" elapsed="0.000274"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:17.325452" elapsed="0.000399"/>
</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-15T19:49:16.707580" elapsed="0.618413">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:19.341222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:19.542795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:19.945141" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:19.947357" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:19.338314" elapsed="0.614154">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:19.953301" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:19.952724" elapsed="0.000709"/>
</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-15T19:49:19.953809" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:19.953488" elapsed="0.000442"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:19.952672" elapsed="0.001304"/>
</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-15T19:49:19.954315" 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-15T19:49:19.954935" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:19.954599" elapsed="0.000464"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:19.954478" elapsed="0.000645"/>
</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-15T19:49:19.337698" elapsed="0.617638">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:49:19.955548" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:08.817592" elapsed="11.138205">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:19.956082" elapsed="0.000022"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-15T19:49:08.807690" elapsed="11.148585">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:19.960323" 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-15T19:49:19.956864" elapsed="0.003520"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:49:19.963860" 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-15T19:49:19.960528" elapsed="0.003385"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:49:19.964383" 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-15T19:49:19.964051" elapsed="0.000358"/>
</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-15T19:49:19.973967" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:20.175190" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:20.576798" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:20.578865" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:19.971631" elapsed="0.612565">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:20.585052" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:20.584470" elapsed="0.000715"/>
</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-15T19:49:20.585535" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:20.585242" elapsed="0.000409"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:20.584405" elapsed="0.001292"/>
</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-15T19:49:20.585986" 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-15T19:49:20.586673" elapsed="0.000050"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:20.586360" elapsed="0.000477"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:20.586232" elapsed="0.000675"/>
</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-15T19:49:19.971130" elapsed="0.615944">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:22.597049" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:22.798666" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:23.200831" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:23.203075" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:22.594277" elapsed="0.613126">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:23.208039" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:23.207600" elapsed="0.000527"/>
</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-15T19:49:23.208374" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:23.208164" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:23.207556" elapsed="0.000922"/>
</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-15T19:49:23.208637" 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-15T19:49:23.209030" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:23.208850" elapsed="0.000257"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:23.208762" elapsed="0.000383"/>
</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-15T19:49:22.593554" elapsed="0.615736">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:25.223811" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:25.425266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:25.826932" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:25.829028" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:25.220560" elapsed="0.613591">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:25.835102" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:25.834498" elapsed="0.000739"/>
</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-15T19:49:25.835578" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:25.835292" elapsed="0.000405"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:25.834440" elapsed="0.001334"/>
</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-15T19:49:25.836037" 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-15T19:49:25.836626" elapsed="0.000051"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:25.836319" elapsed="0.000466"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:25.836196" elapsed="0.000650"/>
</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-15T19:49:25.219724" elapsed="0.617348">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:27.851194" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:28.053042" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:28.455293" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:28.457655" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:27.847583" elapsed="0.615311">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:28.463821" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:28.463181" elapsed="0.000778"/>
</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-15T19:49:28.464295" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:28.464014" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:28.463120" elapsed="0.001264"/>
</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-15T19:49:28.464499" 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-15T19:49:28.464777" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:28.464633" elapsed="0.000201"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:28.464574" elapsed="0.000286"/>
</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-15T19:49:27.846670" elapsed="0.618291">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:30.480439" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:30.681878" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:31.083900" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:31.089660" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:30.477578" elapsed="0.617129">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:31.095422" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:31.094997" elapsed="0.000488"/>
</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-15T19:49:31.095644" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:31.095510" elapsed="0.000187"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:31.094944" elapsed="0.000774"/>
</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-15T19:49:31.095847" 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-15T19:49:31.096103" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:31.095978" elapsed="0.000184"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:31.095920" elapsed="0.000269"/>
</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-15T19:49:30.476950" elapsed="0.619335">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:49:31.096381" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:19.964583" elapsed="11.131894">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:31.096651" elapsed="0.000022"/>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-04-15T19:49:19.956489" elapsed="11.140369">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:31.097523" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:49:31.097418" elapsed="0.000181"/>
</kw>
<doc>Test suite for RESTCONF inventory</doc>
<status status="FAIL" start="2026-04-15T19:48:13.015631" elapsed="78.082003"/>
</suite>
<suite id="s1-s1-s2" name="020 Restconf Topology" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:49:31.128975" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/json'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4ef2150&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-15T19:49:31.128610" elapsed="0.000533"/>
</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-15T19:49:31.138662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:31.340206" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:31.742162" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:31.744431" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:31.136199" elapsed="0.610545">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:31.747171" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:31.746882" elapsed="0.000351"/>
</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-15T19:49:31.747395" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:31.747259" elapsed="0.000189"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:31.746852" elapsed="0.000618"/>
</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-15T19:49:31.747584" 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-15T19:49:31.747860" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:31.747719" elapsed="0.000196"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:31.747659" elapsed="0.000283"/>
</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-15T19:49:31.135799" elapsed="0.612243">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:33.758442" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:33.959936" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:34.361619" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:34.363599" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:33.755564" elapsed="0.613004">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:34.369484" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:34.368875" elapsed="0.000750"/>
</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-15T19:49:34.370038" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:34.369688" elapsed="0.000478"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:34.368819" elapsed="0.001399"/>
</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-15T19:49:34.370491" 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-15T19:49:34.371115" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:34.370827" elapsed="0.000429"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:34.370661" elapsed="0.000663"/>
</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-15T19:49:33.755059" elapsed="0.616488">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:36.386624" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:36.588236" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:36.990654" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:36.993081" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:36.383634" elapsed="0.614760">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:36.999723" elapsed="0.000221"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:36.998661" elapsed="0.001362"/>
</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-15T19:49:37.000538" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:37.000080" elapsed="0.000621"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:36.998608" elapsed="0.002186"/>
</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-15T19:49:37.001123" elapsed="0.000056"/>
</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-15T19:49:37.001564" elapsed="0.000024"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:37.001414" elapsed="0.000213"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:37.001314" elapsed="0.000342"/>
</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-15T19:49:36.383087" elapsed="0.618705">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:39.017046" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:39.218363" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:39.620513" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:39.622777" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:39.014289" elapsed="0.614142">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:39.629080" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:39.628649" 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-15T19:49:39.629402" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:39.629207" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:39.628604" elapsed="0.000904"/>
</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-15T19:49:39.629685" 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-15T19:49:39.630089" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:39.629908" elapsed="0.000259"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:39.629821" elapsed="0.000385"/>
</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-15T19:49:39.013766" elapsed="0.616586">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:41.644541" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:41.845950" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.248027" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.250491" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:41.641340" elapsed="0.614175">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:42.256093" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:42.255704" elapsed="0.000475"/>
</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-15T19:49:42.256399" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:49:42.256214" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:49:42.255668" elapsed="0.000835"/>
</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-15T19:49:42.256663" 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-15T19:49:42.257040" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:49:42.256866" elapsed="0.000252"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:49:42.256785" elapsed="0.000370"/>
</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-15T19:49:41.640648" elapsed="0.616641">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:49:42.257423" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:31.129692" elapsed="11.127862">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:42.257783" elapsed="0.000031"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:42.258010" elapsed="0.000028"/>
</kw>
<doc>Get RESTCONF Topology and validate the result.</doc>
<status status="FAIL" start="2026-04-15T19:49:31.129223" elapsed="11.129032">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:42.259655" 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-15T19:49:42.259127" elapsed="0.000566"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.260369" 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-15T19:49:42.259927" elapsed="0.000479"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.261214" 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-15T19:49:42.260615" elapsed="0.000638"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.261949" 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-15T19:49:42.261473" elapsed="0.000538"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.262668" 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-15T19:49:42.262211" elapsed="0.000495"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.263369" 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-15T19:49:42.262939" elapsed="0.000466"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.264258" 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-15T19:49:42.263671" elapsed="0.000625"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.264966" 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-15T19:49:42.264511" elapsed="0.000515"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.265662" 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-15T19:49:42.265232" elapsed="0.000467"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.266359" 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-15T19:49:42.265928" elapsed="0.000468"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.267242" 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-15T19:49:42.266638" elapsed="0.000641"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.267870" 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-15T19:49:42.267508" elapsed="0.000405"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.268354" 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-15T19:49:42.268054" elapsed="0.000326"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.268840" 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-15T19:49:42.268525" elapsed="0.000340"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.269422" 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-15T19:49:42.269015" elapsed="0.000436"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.269933" 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-15T19:49:42.269607" elapsed="0.000368"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:49:42.270514" 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-15T19:49:42.270110" elapsed="0.000431"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:49:42.274036" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.475434" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.877458" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.879682" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:42.271531" elapsed="0.613105">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:42.885127" 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-15T19:49:42.885642" elapsed="0.000054"/>
</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-15T19:49:42.886126" 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-15T19:49:42.886514" 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-15T19:49:42.886840" 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-15T19:49:42.887054" 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-15T19:49:42.887694" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:42.887250" elapsed="0.000543"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:42.887162" elapsed="0.000673"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:42.271228" elapsed="0.616747">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:44.894083" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:45.095795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:45.497965" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:45.499907" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:44.889656" elapsed="0.615200">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:45.505318" 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-15T19:49:45.505848" 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-15T19:49:45.506202" 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-15T19:49:45.506589" elapsed="0.000059"/>
</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-15T19:49:45.507016" elapsed="0.000049"/>
</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-15T19:49:45.507380" 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-15T19:49:45.507990" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:45.507710" elapsed="0.000402"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:45.507563" elapsed="0.000606"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:44.888804" elapsed="0.619574">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:47.514894" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:47.716852" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:48.118885" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:48.120967" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:47.510081" elapsed="0.616553">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:48.127104" 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-15T19:49:48.127599" elapsed="0.000055"/>
</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-15T19:49:48.127987" 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-15T19:49:48.128371" 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-15T19:49:48.128720" elapsed="0.000087"/>
</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-15T19:49:48.129029" 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-15T19:49:48.129290" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:48.129173" elapsed="0.000171"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:48.129110" elapsed="0.000262"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:47.509199" elapsed="0.620273">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:50.135952" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:50.337916" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:50.739823" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:50.741667" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:50.131236" elapsed="0.615645">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:50.747327" elapsed="0.000057"/>
</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-15T19:49:50.747851" elapsed="0.000055"/>
</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-15T19:49:50.748204" 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-15T19:49:50.748532" elapsed="0.000044"/>
</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-15T19:49:50.748895" 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-15T19:49:50.749228" elapsed="0.000043"/>
</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-15T19:49:50.749799" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:50.749523" elapsed="0.000398"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:50.749393" elapsed="0.000590"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:50.130336" elapsed="0.619864">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:52.757056" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:52.959221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.361970" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.364966" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:52.752162" elapsed="0.617934">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:53.370636" 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-15T19:49:53.371098" elapsed="0.000028"/>
</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-15T19:49:53.371264" 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-15T19:49:53.371412" elapsed="0.000019"/>
</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-15T19:49:53.371563" 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-15T19:49:53.371713" 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-15T19:49:53.371999" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:53.371883" elapsed="0.000170"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:53.371810" elapsed="0.000274"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:52.751184" elapsed="0.621010">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:49:53.372290" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:42.270696" elapsed="11.101692">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:42.258557" elapsed="11.114024">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:53.376881" 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-15T19:49:53.373269" elapsed="0.003675"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:49:53.380872" 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-15T19:49:53.377086" elapsed="0.003839"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:49:53.381455" 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-15T19:49:53.381065" elapsed="0.000419"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:49:53.384936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.586309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.988574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.991111" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:53.382512" elapsed="0.613894">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:53.996988" elapsed="0.000069"/>
</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-15T19:49:53.997665" elapsed="0.000117"/>
</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-15T19:49:53.998251" elapsed="0.000070"/>
</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-15T19:49:53.998775" elapsed="0.000079"/>
</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-15T19:49:53.999106" 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-15T19:49:53.999308" 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-15T19:49:53.999687" elapsed="0.000026"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:53.999535" elapsed="0.000239"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:53.999427" elapsed="0.000388"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:53.382180" elapsed="0.617792">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:56.008166" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:56.209931" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:56.611776" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:56.613818" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:56.001981" elapsed="0.616628">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:56.618939" 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-15T19:49:56.619273" elapsed="0.000035"/>
</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-15T19:49:56.619499" 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-15T19:49:56.619710" 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-15T19:49:56.619955" 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-15T19:49:56.620184" 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-15T19:49:56.620537" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:56.620375" elapsed="0.000239"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:56.620291" elapsed="0.000362"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:56.000925" elapsed="0.619886">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:58.627625" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:58.829790" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:59.232172" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:59.234555" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:58.622616" elapsed="0.617026">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:49:59.240221" 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-15T19:49:59.240807" 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-15T19:49:59.241129" elapsed="0.000025"/>
</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-15T19:49:59.241285" 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-15T19:49:59.241438" 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-15T19:49:59.241587" 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-15T19:49:59.241876" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:49:59.241757" elapsed="0.000173"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:49:59.241671" elapsed="0.000290"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:49:58.621682" elapsed="0.620401">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:01.249719" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:01.451770" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:01.853804" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:01.856134" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:01.244551" elapsed="0.614732">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:01.859637" 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-15T19:50:01.860080" 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-15T19:50:01.860310" elapsed="0.000027"/>
</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-15T19:50:01.860517" 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-15T19:50:01.860728" elapsed="0.000049"/>
</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-15T19:50:01.861030" 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-15T19:50:01.861450" elapsed="0.000040"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:01.861243" elapsed="0.000298"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:01.861148" elapsed="0.000436"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:01.242966" elapsed="0.618799">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:03.868322" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:04.070130" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:04.472230" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:04.474111" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:03.863565" elapsed="0.615701">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:04.479705" elapsed="0.000090"/>
</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-15T19:50:04.480242" elapsed="0.000054"/>
</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-15T19:50:04.480595" 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-15T19:50:04.480955" 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-15T19:50:04.481324" 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-15T19:50:04.481663" elapsed="0.000043"/>
</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-15T19:50:04.482277" elapsed="0.000492"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:04.481987" elapsed="0.000870"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:04.481858" elapsed="0.001061"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:03.862634" elapsed="0.620511">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:06.489178" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:06.691046" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:07.093015" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:07.095535" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:06.484616" elapsed="0.615987">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:07.101196" elapsed="0.000102"/>
</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-15T19:50:07.101790" 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-15T19:50:07.102153" 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-15T19:50:07.102346" 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-15T19:50:07.102502" 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-15T19:50:07.102655" 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-15T19:50:07.102926" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:07.102811" elapsed="0.000171"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:07.102746" elapsed="0.000264"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:06.483873" elapsed="0.619239">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:09.109587" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:09.311521" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:09.713831" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:09.716622" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:09.104847" elapsed="0.616743">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:09.722081" 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-15T19:50:09.722630" elapsed="0.000055"/>
</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-15T19:50:09.723020" 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-15T19:50:09.723356" 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-15T19:50:09.723699" elapsed="0.000073"/>
</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-15T19:50:09.724074" 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-15T19:50:09.724703" elapsed="0.000076"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:09.724446" elapsed="0.000427"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:09.724294" elapsed="0.000641"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:09.103894" elapsed="0.621249">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:11.731999" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:11.933915" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:12.335946" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:12.338124" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:11.727017" elapsed="0.616277">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:12.343792" 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-15T19:50:12.344303" elapsed="0.000055"/>
</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-15T19:50:12.344656" 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-15T19:50:12.345024" 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-15T19:50:12.345365" 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-15T19:50:12.345698" elapsed="0.000071"/>
</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-15T19:50:12.346293" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:12.346036" elapsed="0.000380"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:12.345904" elapsed="0.000574"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:11.726049" elapsed="0.620649">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:14.353124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:14.555388" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:14.961244" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:14.963393" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:14.348414" elapsed="0.620023">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:14.968948" elapsed="0.000062"/>
</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-15T19:50:14.969486" 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-15T19:50:14.969871" 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-15T19:50:14.970203" elapsed="0.000044"/>
</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-15T19:50:14.970563" 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-15T19:50:14.970927" 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-15T19:50:14.971473" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:14.971226" elapsed="0.000366"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:14.971095" elapsed="0.000558"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:14.347512" elapsed="0.624383">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:16.978462" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:17.179928" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:17.581935" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:17.584305" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:16.973781" elapsed="0.616125">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:17.590409" 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-15T19:50:17.591057" elapsed="0.000063"/>
</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-15T19:50:17.591450" elapsed="0.000054"/>
</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-15T19:50:17.591906" elapsed="0.000051"/>
</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-15T19:50:17.592285" 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-15T19:50:17.592678" elapsed="0.000047"/>
</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-15T19:50:17.593267" elapsed="0.000088"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:17.593017" elapsed="0.000423"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:17.592886" elapsed="0.000617"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:16.972865" elapsed="0.620895">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:19.600125" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:19.801995" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:20.204916" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:20.207074" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:19.595531" elapsed="0.616848">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:20.212887" 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-15T19:50:20.213440" 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-15T19:50:20.213872" 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-15T19:50:20.214222" 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-15T19:50:20.214570" 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-15T19:50:20.215062" 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-15T19:50:20.215633" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:20.215380" elapsed="0.000405"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:20.215247" elapsed="0.000602"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:19.594610" elapsed="0.621457">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:22.222331" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:22.424229" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:22.826352" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:22.828114" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:22.217817" elapsed="0.613472">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:22.831825" 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-15T19:50:22.832177" elapsed="0.000035"/>
</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-15T19:50:22.832408" 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-15T19:50:22.832614" 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-15T19:50:22.832846" 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-15T19:50:22.833059" 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-15T19:50:22.833421" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:22.833259" elapsed="0.000238"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:22.833171" elapsed="0.000367"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:22.216916" elapsed="0.616772">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:24.840261" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:25.042212" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:25.444152" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:25.446189" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:24.835498" elapsed="0.615767">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:25.451675" 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-15T19:50:25.452084" elapsed="0.000036"/>
</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-15T19:50:25.452310" elapsed="0.000027"/>
</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-15T19:50:25.452521" 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-15T19:50:25.452755" 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-15T19:50:25.452973" 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-15T19:50:25.453334" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:25.453175" elapsed="0.000236"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:25.453083" elapsed="0.000368"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:24.834500" elapsed="0.619094">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:27.458356" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:27.659823" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:28.061847" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:28.063690" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:27.454948" elapsed="0.612840">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:28.068091" elapsed="0.000040"/>
</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-15T19:50:28.068426" elapsed="0.000036"/>
</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-15T19:50:28.068649" 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-15T19:50:28.068877" 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-15T19:50:28.069093" 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-15T19:50:28.069302" 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-15T19:50:28.069669" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:28.069511" elapsed="0.000251"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:28.069411" elapsed="0.000391"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:27.454267" elapsed="0.615673">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:30.077074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:30.278859" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:30.680757" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:30.682892" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:30.071676" elapsed="0.616693">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:30.688919" 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-15T19:50:30.689362" 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-15T19:50:30.689589" 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-15T19:50:30.689821" elapsed="0.000035"/>
</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-15T19:50:30.690082" 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-15T19:50:30.690292" 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-15T19:50:30.690646" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:30.690487" elapsed="0.000236"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:30.690402" elapsed="0.000379"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:30.070797" elapsed="0.620152">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:32.694754" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:32.896506" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:33.298333" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:33.300453" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:32.692031" elapsed="0.613031">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:33.305394" elapsed="0.000040"/>
</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-15T19:50:33.305767" 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-15T19:50:33.305995" 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-15T19:50:33.306208" 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-15T19:50:33.306424" 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-15T19:50:33.306635" 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-15T19:50:33.307007" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:33.306846" elapsed="0.000238"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:33.306758" elapsed="0.000365"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:32.691482" elapsed="0.615778">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:35.314282" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:35.515573" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:35.917720" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:35.919779" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:35.309070" elapsed="0.615749">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:35.925244" elapsed="0.000055"/>
</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-15T19:50:35.925720" elapsed="0.000085"/>
</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-15T19:50:35.926133" 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-15T19:50:35.926471" elapsed="0.000059"/>
</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-15T19:50:35.926855" 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-15T19:50:35.927222" 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-15T19:50:35.927802" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:35.927525" elapsed="0.000400"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:35.927400" elapsed="0.000584"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:35.308165" elapsed="0.620028">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:37.934812" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:38.136769" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:38.539178" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:38.541368" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:37.930038" elapsed="0.616394">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:38.546947" 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-15T19:50:38.547480" 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-15T19:50:38.547862" 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-15T19:50:38.548192" elapsed="0.000044"/>
</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-15T19:50:38.548529" 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-15T19:50:38.549013" 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-15T19:50:38.549615" elapsed="0.000048"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:38.549317" elapsed="0.000451"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:38.549186" elapsed="0.000647"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:37.929058" elapsed="0.620997">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:40.557050" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:40.758538" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:41.160538" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:41.162521" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:40.551877" elapsed="0.615091">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:41.167286" elapsed="0.000038"/>
</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-15T19:50:41.167625" elapsed="0.000035"/>
</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-15T19:50:41.167874" 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-15T19:50:41.168085" 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-15T19:50:41.168301" 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-15T19:50:41.168509" elapsed="0.000026"/>
</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-15T19:50:41.168907" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:41.168725" elapsed="0.000259"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:41.168633" elapsed="0.000392"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:40.550970" elapsed="0.618199">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:43.175677" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:43.377494" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:43.779711" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:43.781904" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:43.171036" elapsed="0.615886">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:43.787530" elapsed="0.000106"/>
</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-15T19:50:43.788133" 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-15T19:50:43.788446" 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-15T19:50:43.788598" 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-15T19:50:43.788768" 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-15T19:50:43.788926" 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-15T19:50:43.789183" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:43.789069" elapsed="0.000169"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:43.789005" elapsed="0.000262"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:43.170061" elapsed="0.619308">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:45.796200" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:45.997797" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:46.399883" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:46.401925" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:45.791648" elapsed="0.615642">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:46.407658" elapsed="0.000038"/>
</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-15T19:50:46.408019" elapsed="0.000036"/>
</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-15T19:50:46.408245" 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-15T19:50:46.408450" 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-15T19:50:46.408659" 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-15T19:50:46.408887" 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-15T19:50:46.409246" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:46.409086" elapsed="0.000235"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:46.408998" elapsed="0.000361"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:45.790164" elapsed="0.619336">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:48.415834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:48.617642" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:49.019680" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:49.021920" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:48.411216" elapsed="0.615580">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:49.027104" elapsed="0.000035"/>
</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-15T19:50:49.027416" 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-15T19:50:49.027634" 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-15T19:50:49.027862" 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-15T19:50:49.028076" 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-15T19:50:49.028283" 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-15T19:50:49.028634" elapsed="0.000037"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:49.028475" elapsed="0.000250"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:49.028390" elapsed="0.000395"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:48.410333" elapsed="0.618594">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:51.035606" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:51.237323" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:51.639373" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:51.641474" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:51.031040" elapsed="0.615170">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:51.646579" 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-15T19:50:51.647000" 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-15T19:50:51.647229" 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-15T19:50:51.647445" 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-15T19:50:51.647660" 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-15T19:50:51.647897" 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-15T19:50:51.648277" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:51.648116" elapsed="0.000237"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:51.648017" elapsed="0.000379"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:51.030241" elapsed="0.618308">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:53.655202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:53.856929" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.259673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.261700" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:53.650793" elapsed="0.616099">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:54.267357" 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-15T19:50:54.267908" 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-15T19:50:54.268279" 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-15T19:50:54.268611" elapsed="0.000044"/>
</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-15T19:50:54.268989" 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-15T19:50:54.269327" elapsed="0.000092"/>
</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-15T19:50:54.270504" elapsed="0.000061"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:54.269688" elapsed="0.000969"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:54.269553" elapsed="0.001159"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:53.649637" elapsed="0.621206">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:50:54.270939" level="FAIL">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:49:53.381645" elapsed="60.889392">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:54.271196" elapsed="0.000020"/>
</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-15T19:50:54.271349" elapsed="0.000019"/>
</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-15T19:50:54.271499" elapsed="0.000019"/>
</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-15T19:50:54.271645" elapsed="0.000019"/>
</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-15T19:50:54.271807" elapsed="0.000021"/>
</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-15T19:50:54.271957" elapsed="0.000019"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-15T19:49:53.372900" elapsed="60.899237">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:54.276462" 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-15T19:50:54.272704" elapsed="0.003819"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:50:54.280260" 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-15T19:50:54.276718" elapsed="0.003595"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:50:54.280945" 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-15T19:50:54.280456" elapsed="0.000517"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:50:54.284523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.485976" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.887778" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.890079" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:54.282022" elapsed="0.613113">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:54.895576" 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-15T19:50:54.896118" elapsed="0.000055"/>
</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-15T19:50:54.896473" 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-15T19:50:54.896839" 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-15T19:50:54.897182" elapsed="0.000042"/>
</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-15T19:50:54.897527" elapsed="0.000043"/>
</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-15T19:50:54.898114" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:54.897858" elapsed="0.000377"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:54.897691" elapsed="0.000607"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:54.281694" elapsed="0.616815">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:56.903734" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:57.105525" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:57.507893" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:57.510037" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:56.899965" elapsed="0.615415">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:50:57.515893" 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-15T19:50:57.516414" elapsed="0.000146"/>
</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-15T19:50:57.516906" 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-15T19:50:57.517244" 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-15T19:50:57.517585" 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-15T19:50:57.517957" 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-15T19:50:57.518509" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:50:57.518258" elapsed="0.000371"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:50:57.518129" elapsed="0.000560"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:56.899311" elapsed="0.619626">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:59.525547" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:59.727410" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:00.129818" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:00.131695" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:59.520848" elapsed="0.616102">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:51:00.137408" 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-15T19:51:00.137928" elapsed="0.000055"/>
</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-15T19:51:00.138282" 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-15T19:51:00.138666" 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-15T19:51:00.139013" 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-15T19:51:00.139180" 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-15T19:51:00.139440" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:51:00.139327" elapsed="0.000167"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:51:00.139264" elapsed="0.000258"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:50:59.519874" elapsed="0.619756">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:02.146722" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:02.348782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:02.750833" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:02.753363" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:02.141379" elapsed="0.616658">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:51:02.758421" 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-15T19:51:02.758861" 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-15T19:51:02.759097" 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-15T19:51:02.759309" 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-15T19:51:02.759522" 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-15T19:51:02.759767" 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-15T19:51:02.760192" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:51:02.760028" elapsed="0.000240"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:51:02.759918" elapsed="0.000393"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:51:02.140416" elapsed="0.620077">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:04.766670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:04.968379" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:05.370853" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:05.373160" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:04.762277" elapsed="0.615999">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:51:05.378819" 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-15T19:51:05.379374" elapsed="0.000104"/>
</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-15T19:51:05.379841" elapsed="0.000054"/>
</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-15T19:51:05.380082" 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-15T19:51:05.380236" 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-15T19:51:05.380387" 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-15T19:51:05.380670" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:51:05.380552" elapsed="0.000173"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:51:05.380474" elapsed="0.000304"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:51:04.761358" elapsed="0.619540">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:51:05.381070" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:54.281137" elapsed="11.100033">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:50:54.272343" elapsed="11.109029">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:05.381994" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:51:05.381880" elapsed="0.000200"/>
</kw>
<doc>Test suite for RESTCONF Topology</doc>
<status status="FAIL" start="2026-04-15T19:49:31.098550" elapsed="94.283564"/>
</suite>
<suite id="s1-s1-s3" name="030 Restconf Statistics" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:51:05.415513" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4dc2e50&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-15T19:51:05.415157" elapsed="0.000545"/>
</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-15T19:51:05.425342" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:05.626923" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:06.029309" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:06.031223" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:05.422856" elapsed="0.613057">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:06.036448" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:06.036087" elapsed="0.000446"/>
</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-15T19:51:06.036779" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:06.036570" elapsed="0.000297"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:06.036049" elapsed="0.000854"/>
</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-15T19:51:06.037081" 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-15T19:51:06.037431" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:06.037264" elapsed="0.000242"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:06.037184" elapsed="0.000359"/>
</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-15T19:51:05.422412" elapsed="0.615265">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:08.055230" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:08.256728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:08.658791" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:08.660822" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:08.052113" elapsed="0.613438">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:08.666143" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:08.665727" 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-15T19:51:08.666452" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:08.666270" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:08.665691" elapsed="0.000864"/>
</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-15T19:51:08.666715" 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-15T19:51:08.667097" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:08.666922" elapsed="0.000250"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:08.666841" elapsed="0.000369"/>
</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-15T19:51:08.051572" elapsed="0.615774">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:10.682715" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:10.884358" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:11.286851" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:11.289181" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:10.680010" elapsed="0.614352">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:11.295855" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:11.294641" elapsed="0.001359"/>
</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-15T19:51:11.296356" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:11.296059" elapsed="0.000416"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:11.294582" elapsed="0.001941"/>
</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-15T19:51:11.296808" 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-15T19:51:11.297378" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:11.297104" elapsed="0.000392"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:11.296973" elapsed="0.000585"/>
</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-15T19:51:10.679430" elapsed="0.618374">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:13.314168" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:13.515809" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:13.918161" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:13.920112" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:13.311421" elapsed="0.610949">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:13.922868" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:13.922541" elapsed="0.000392"/>
</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-15T19:51:13.923100" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:13.922960" elapsed="0.000192"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:13.922480" elapsed="0.000693"/>
</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-15T19:51:13.923290" 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-15T19:51:13.923546" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:13.923421" elapsed="0.000179"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:13.923363" elapsed="0.000264"/>
</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-15T19:51:13.310906" elapsed="0.612821">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:15.938623" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:16.140384" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:16.542656" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:16.545273" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:15.935220" elapsed="0.615576">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:16.551628" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:16.551074" elapsed="0.000722"/>
</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-15T19:51:16.552148" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:16.551858" elapsed="0.000409"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:16.551015" elapsed="0.001300"/>
</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-15T19:51:16.552588" elapsed="0.000063"/>
</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-15T19:51:16.553356" elapsed="0.000050"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:16.553007" elapsed="0.000482"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:16.552850" elapsed="0.000698"/>
</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-15T19:51:15.934504" elapsed="0.619293">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:51:16.554017" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:05.416188" elapsed="11.138057">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:05.415788" elapsed="11.138716">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:16.561369" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:16.762836" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:17.164795" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:17.166804" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:16.558962" elapsed="0.612909">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:17.172295" elapsed="0.000056"/>
</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-15T19:51:17.172642" elapsed="0.000044"/>
</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-15T19:51:16.558601" elapsed="0.614338">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:19.183936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:19.385764" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:19.788529" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:19.790590" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:19.180455" elapsed="0.615379">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:19.796292" 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-15T19:51:19.796646" elapsed="0.000050"/>
</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-15T19:51:19.179865" elapsed="0.617082">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:21.808260" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:22.009905" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:22.411903" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:22.413870" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:21.804709" elapsed="0.614374">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:22.419557" 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-15T19:51:22.419995" 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-15T19:51:21.803991" elapsed="0.616286">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:24.431624" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:24.633004" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:25.034985" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:25.036941" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:24.428244" elapsed="0.613717">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:25.042248" elapsed="0.000037"/>
</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-15T19:51:25.042470" elapsed="0.000029"/>
</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-15T19:51:24.427376" elapsed="0.615259">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:27.055033" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.256257" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.658408" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.660361" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:27.050489" elapsed="0.615205">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:27.666170" elapsed="0.000057"/>
</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-15T19:51:27.666518" elapsed="0.000045"/>
</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-15T19:51:27.049596" elapsed="0.617219">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:51:27.667022" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:16.555278" elapsed="11.111956">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:16.554830" elapsed="11.112786">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:27.675252" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.876691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:28.278941" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:28.280843" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:27.672888" elapsed="0.611523">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:28.284795" 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-15T19:51:28.285030" elapsed="0.000028"/>
</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-15T19:51:27.672552" elapsed="0.612660">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:30.291822" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:30.493071" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:30.895083" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:30.897373" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:30.288978" elapsed="0.613311">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:30.902603" elapsed="0.000040"/>
</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-15T19:51:30.902865" elapsed="0.000033"/>
</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-15T19:51:30.288533" elapsed="0.614514">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:32.913471" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:33.114975" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:33.516984" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:33.518928" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:32.910036" elapsed="0.614496">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:33.525031" elapsed="0.000059"/>
</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-15T19:51:33.525387" elapsed="0.000044"/>
</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-15T19:51:32.909461" elapsed="0.616195">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:35.536255" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:35.737788" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:36.139656" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:36.141479" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:35.532891" elapsed="0.613592">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:36.146931" elapsed="0.000083"/>
</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-15T19:51:36.147309" elapsed="0.000132"/>
</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-15T19:51:35.532325" elapsed="0.615362">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:38.159483" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.361217" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.764085" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.766435" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:38.155513" elapsed="0.616090">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:38.772108" 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-15T19:51:38.772464" 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-15T19:51:38.154683" elapsed="0.618075">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:51:38.772973" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:27.669015" elapsed="11.104212">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:27.668095" elapsed="11.105506">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:38.782890" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.984252" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:39.386211" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:39.388080" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:38.779894" elapsed="0.613150">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:39.393507" elapsed="0.000054"/>
</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-15T19:51:39.393895" elapsed="0.000046"/>
</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-15T19:51:38.779441" elapsed="0.614709">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:41.405073" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:41.606607" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:42.008641" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:42.011135" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:41.401441" elapsed="0.615262">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:42.017343" elapsed="0.000068"/>
</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-15T19:51:42.017718" elapsed="0.000083"/>
</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-15T19:51:41.400822" elapsed="0.617213">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:44.029163" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:44.230907" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:44.632780" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:44.634659" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:44.025624" elapsed="0.614261">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:44.640316" elapsed="0.000054"/>
</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-15T19:51:44.640658" elapsed="0.000045"/>
</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-15T19:51:44.025043" elapsed="0.615917">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:46.651770" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:46.853312" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:47.255413" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:47.257238" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:46.648319" elapsed="0.614085">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:47.262759" 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-15T19:51:47.262986" 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-15T19:51:46.647701" elapsed="0.615491">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:49.274626" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:49.475929" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:49.877816" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:49.879701" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:49.271233" elapsed="0.613921">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:49.885701" elapsed="0.000099"/>
</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-15T19:51:49.886109" elapsed="0.000046"/>
</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-15T19:51:49.270675" elapsed="0.615738">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:51:49.886655" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:38.774883" elapsed="11.112025">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:38.774015" elapsed="11.113255">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:49.888509" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:51:49.888303" elapsed="0.000362"/>
</kw>
<doc>Test suite for RESTCONF statistics</doc>
<status status="FAIL" start="2026-04-15T19:51:05.382819" elapsed="44.506076"/>
</suite>
<suite id="s1-s1-s4" name="040 Restconf Frm" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:51:49.925009" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f6ddbb10&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-15T19:51:49.924591" elapsed="0.000586"/>
</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-15T19:51:49.928344" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.129728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.531909" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.534149" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:49.925660" elapsed="0.617546">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:49.925249" elapsed="0.618380">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:50.547689" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.748951" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.151221" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.153568" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:50.545188" elapsed="0.613698">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:51.159394" elapsed="0.000061"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-15T19:51:50.544657" elapsed="0.615174">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:51.162244" 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-15T19:51:51.161504" elapsed="0.000800"/>
</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-15T19:51:51.169722" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.371124" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.773044" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.775430" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:51.167321" elapsed="0.612769">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:51.781043" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:51.780274" elapsed="0.000857"/>
</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-15T19:51:51.781356" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:51.781168" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:51.780234" 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-15T19:51:51.781619" 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-15T19:51:51.782003" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:51.781825" elapsed="0.000254"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:51.781721" elapsed="0.000395"/>
</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-15T19:51:51.166838" elapsed="0.615418">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:53.794651" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:53.996251" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:54.398694" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:54.400845" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:53.790100" elapsed="0.616295">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:54.407196" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:54.406663" elapsed="0.000662"/>
</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-15T19:51:54.407708" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:54.407382" elapsed="0.000484"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:54.406614" elapsed="0.001299"/>
</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-15T19:51:54.408165" 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-15T19:51:54.408568" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:54.408439" elapsed="0.000183"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:54.408339" elapsed="0.000309"/>
</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-15T19:51:53.788943" elapsed="0.619831">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:56.420085" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:56.621387" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:57.023587" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:57.025440" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:56.416490" elapsed="0.611264">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:57.028117" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:57.027877" elapsed="0.000300"/>
</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-15T19:51:57.028327" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:57.028203" elapsed="0.000176"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:57.027852" elapsed="0.000547"/>
</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-15T19:51:57.028512" 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-15T19:51:57.028787" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:57.028642" elapsed="0.000199"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:57.028585" elapsed="0.000283"/>
</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-15T19:51:56.415390" elapsed="0.613576">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:59.041625" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:59.243878" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:59.646726" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:59.649352" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:59.037559" elapsed="0.616566">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:59.654790" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:59.654334" 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-15T19:51:59.655124" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:51:59.654919" elapsed="0.000278"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:51:59.654286" elapsed="0.000940"/>
</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-15T19:51:59.655469" 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-15T19:51:59.655870" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:51:59.655668" elapsed="0.000280"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:51:59.655579" elapsed="0.000408"/>
</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-15T19:51:59.036291" elapsed="0.619852">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:01.669151" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:01.871544" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.274629" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.276924" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:01.664414" elapsed="0.617664">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:02.282943" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:02.282351" elapsed="0.000730"/>
</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-15T19:52:02.283425" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:02.283137" elapsed="0.000406"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:02.282295" elapsed="0.001295"/>
</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-15T19:52:02.283880" 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-15T19:52:02.284429" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:02.284161" elapsed="0.000393"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:02.284041" elapsed="0.000571"/>
</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-15T19:52:01.663187" elapsed="0.621715">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:52:02.285124" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:51.162644" elapsed="11.122692">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:51:51.160439" elapsed="11.125241">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:02.288674" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.490715" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.893625" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.896008" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:02.286287" elapsed="0.614971">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:02.285898" elapsed="0.615778">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:02.907317" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.109697" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.512583" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.515503" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:02.904670" elapsed="0.616169">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:03.521302" elapsed="0.000059"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-15T19:52:02.902672" elapsed="0.619017">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:03.522865" 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-15T19:52:03.522487" elapsed="0.000405"/>
</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-15T19:52:03.532304" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.733832" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:04.136002" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:04.138254" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:03.529981" elapsed="0.612890">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:04.143514" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:04.143127" elapsed="0.000476"/>
</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-15T19:52:04.143864" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:04.143641" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:04.143087" elapsed="0.000897"/>
</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-15T19:52:04.144210" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:52:04.144149" elapsed="0.000126"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:04.144127" elapsed="0.000179"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:52:04.144067" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:04.144043" elapsed="0.000325"/>
</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-15T19:52:04.144537" 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-15T19:52:04.144935" elapsed="0.000038"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:04.144733" elapsed="0.000294"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:04.144645" elapsed="0.000420"/>
</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-15T19:52:03.529456" elapsed="0.615783">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:06.161371" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:06.363052" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:06.765467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:06.768154" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:06.158074" elapsed="0.615123">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:06.773861" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:06.773404" 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-15T19:52:06.774186" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:06.773989" elapsed="0.000272"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:06.773358" elapsed="0.000931"/>
</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-15T19:52:06.774492" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:52:06.774439" elapsed="0.000111"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:06.774420" elapsed="0.000158"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:52:06.774365" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:06.774344" elapsed="0.000292"/>
</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-15T19:52:06.774820" 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-15T19:52:06.775197" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:06.775014" elapsed="0.000258"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:06.774927" elapsed="0.000386"/>
</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-15T19:52:06.157185" elapsed="0.618281">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:08.791381" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:08.993614" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:09.395953" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:09.398094" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:08.787787" elapsed="0.616038">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:09.404631" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:09.404087" elapsed="0.000713"/>
</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-15T19:52:09.405148" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:09.404858" elapsed="0.000410"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:09.404035" elapsed="0.001279"/>
</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-15T19:52:09.405638" elapsed="0.000032"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:52:09.405559" elapsed="0.000164"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:09.405529" elapsed="0.000276"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:52:09.405438" elapsed="0.000417"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:09.405403" elapsed="0.000498"/>
</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-15T19:52:09.406158" elapsed="0.000047"/>
</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-15T19:52:09.406708" elapsed="0.000079"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:09.406444" elapsed="0.000470"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:09.406317" elapsed="0.000659"/>
</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-15T19:52:08.786912" elapsed="0.620273">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:11.422406" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:11.623904" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:12.025918" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:12.028049" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:11.419586" elapsed="0.613555">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:12.034051" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:12.033514" elapsed="0.000625"/>
</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-15T19:52:12.034365" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:12.034175" elapsed="0.000264"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:12.033454" elapsed="0.001014"/>
</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-15T19:52:12.034670" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:52:12.034619" elapsed="0.000107"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:12.034601" elapsed="0.000176"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:52:12.034545" elapsed="0.000263"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:12.034523" 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-15T19:52:12.035000" 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-15T19:52:12.035366" elapsed="0.000027"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:12.035189" elapsed="0.000252"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:12.035104" elapsed="0.000374"/>
</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-15T19:52:11.418949" elapsed="0.616671">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:14.051845" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:14.253293" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:14.655688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:14.657885" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:14.049097" elapsed="0.613987">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:14.663935" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:14.663354" elapsed="0.000736"/>
</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-15T19:52:14.664456" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:14.664149" elapsed="0.000430"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:14.663299" elapsed="0.001328"/>
</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-15T19:52:14.665053" elapsed="0.000048"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:52:14.664918" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:14.664887" elapsed="0.000323"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:52:14.664788" elapsed="0.000472"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:14.664717" elapsed="0.000588"/>
</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-15T19:52:14.665577" elapsed="0.000050"/>
</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-15T19:52:14.666145" elapsed="0.000025"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:14.665962" elapsed="0.000247"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:14.665773" elapsed="0.000463"/>
</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-15T19:52:14.048484" elapsed="0.617858">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:52:14.666502" 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.185', 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.185', 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-15T19:52:03.523050" elapsed="11.143556">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:03.522001" elapsed="11.144812">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:14.667371" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:52:14.667273" elapsed="0.000177"/>
</kw>
<doc>Test suite for RESTCONF FRM</doc>
<status status="FAIL" start="2026-04-15T19:51:49.889900" elapsed="24.777585"/>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:52:14.669442" 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-15T19:52:14.669124" elapsed="0.000377"/>
</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-15T19:52:14.669638" elapsed="0.000175"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-15T19:52:14.669978" elapsed="0.000186"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:52:14.673774" 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-15T19:52:14.670295" elapsed="0.003542"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:52:14.974076" 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.237 seconds
[?2004h[jenkins@releng-38640-217-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-15T19:52:14.673978" elapsed="0.300165"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:52:14.974289" elapsed="0.000183"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-04-15T19:52:14.668794" elapsed="0.305734"/>
</kw>
<doc>Test suite for MD-SAL NSF</doc>
<status status="FAIL" start="2026-04-15T19:48:09.547098" elapsed="245.427460"/>
</suite>
<suite id="s1-s2" name="MD SAL NSF OF13" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:52:15.006816" 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-15T19:52:15.006555" elapsed="0.000308"/>
</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-15T19:52:15.009007" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:15.008756" elapsed="0.000308"/>
</branch>
<status status="PASS" start="2026-04-15T19:52:15.008719" elapsed="0.000369"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:52:15.009376" 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-15T19:52:15.009484" 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-15T19:52:15.009208" elapsed="0.000302"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:52:15.010032" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.133" 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-15T19:52:15.009632" elapsed="0.000445"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:52:15.010584" 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-15T19:52:15.010213" elapsed="0.000397"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:52:15.011483" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:52:15.011561" 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-15T19:52:15.011180" elapsed="0.000406"/>
</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-15T19:52:15.011720" elapsed="0.000349"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:52:15.012937" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:52:15.600505" 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 Wed Apr 15 19:52:15 UTC 2026

  System load:  0.01               Processes:             112
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:48:12 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:52:15.012595" elapsed="0.588009"/>
</kw>
<msg time="2026-04-15T19:52:15.600686" 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-15T19:52:15.012212" elapsed="0.588564"/>
</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-15T19:52:15.010839" elapsed="0.590033"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:52:15.601239" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-15T19:52:16.804230" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:52:16.804567" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:52:16.804617" 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-15T19:52:15.601037" elapsed="1.203608"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:52:16.804940" elapsed="0.000430"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:52:16.805908" 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-15T19:52:16.805546" elapsed="0.000418"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:52:16.806233" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:52:16.806060" elapsed="0.000226"/>
</branch>
<status status="PASS" start="2026-04-15T19:52:16.806031" elapsed="0.000280"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:52:16.806473" elapsed="0.000038"/>
</return>
<status status="PASS" start="2026-04-15T19:52:16.806366" elapsed="0.000179"/>
</branch>
<status status="PASS" start="2026-04-15T19:52:16.806351" elapsed="0.000219"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:52:16.806606" elapsed="0.000014"/>
</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-15T19:52:16.810153" elapsed="0.000821"/>
</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-15T19:52:16.811288" elapsed="0.000353"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:52:16.812291" elapsed="0.000241"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:52:16.806982" elapsed="0.005674"/>
</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-15T19:52:15.008257" elapsed="1.804654"/>
</kw>
<msg time="2026-04-15T19:52:16.813036" 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-15T19:52:15.007689" elapsed="1.805462"/>
</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-15T19:52:15.007269" elapsed="1.806059"/>
</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-15T19:52:16.816881" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:16.816551" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-04-15T19:52:16.816533" elapsed="0.000431"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:52:16.817230" 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-15T19:52:16.817337" 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-15T19:52:16.817085" elapsed="0.000279"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:52:16.817891" 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.133" 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-15T19:52:16.817487" elapsed="0.000451"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:52:16.818445" 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-15T19:52:16.818066" elapsed="0.000405"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:52:16.819320" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:52:16.819396" 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-15T19:52:16.819023" elapsed="0.000397"/>
</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-15T19:52:16.819550" elapsed="0.000346"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:52:16.820688" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:52:17.141199" 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 Wed Apr 15 19:52:15 UTC 2026

  System load:  0.01               Processes:             112
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:52:15 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:52:16.820370" elapsed="0.320939"/>
</kw>
<msg time="2026-04-15T19:52:17.141376" 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-15T19:52:16.820038" elapsed="0.321397"/>
</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-15T19:52:16.818663" elapsed="0.322859"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:52:17.141890" 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-15T19:52:17.174441" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-15T19:52:17.174803" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:52:17.174934" 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-15T19:52:17.141677" elapsed="0.033336"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:52:17.175396" elapsed="0.000657"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:52:17.177171" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:52:17.176481" elapsed="0.000764"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:52:17.177600" elapsed="0.000029"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:52:17.177384" elapsed="0.000302"/>
</branch>
<status status="PASS" start="2026-04-15T19:52:17.177340" elapsed="0.000384"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:52:17.178025" elapsed="0.000058"/>
</return>
<status status="PASS" start="2026-04-15T19:52:17.177846" elapsed="0.000293"/>
</branch>
<status status="PASS" start="2026-04-15T19:52:17.177819" elapsed="0.000367"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:52:17.178248" elapsed="0.000026"/>
</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-15T19:52:17.182048" elapsed="0.000563"/>
</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-15T19:52:17.182898" elapsed="0.000292"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:52:17.183414" elapsed="0.000194"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:52:17.178776" elapsed="0.005066"/>
</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-15T19:52:16.816047" elapsed="0.367969"/>
</kw>
<msg time="2026-04-15T19:52:17.184117" 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-15T19:52:16.814641" elapsed="0.369569"/>
</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-15T19:52:16.813651" elapsed="0.370730"/>
</kw>
<status status="PASS" start="2026-04-15T19:52:15.007013" elapsed="2.177478"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:52:17.185203" 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-15T19:52:17.184698" elapsed="0.000531"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:52:17.185726" 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-15T19:52:17.185383" elapsed="0.000402"/>
</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-15T19:52:17.187435" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:52:17.187513" 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-15T19:52:17.187142" elapsed="0.000394"/>
</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-15T19:52:17.187666" elapsed="0.000343"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:52:17.188858" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:52:17.510228" 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 Wed Apr 15 19:52:15 UTC 2026

  System load:  0.01               Processes:             112
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:52:17 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:52:17.188521" elapsed="0.321860"/>
</kw>
<msg time="2026-04-15T19:52:17.510471" 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-15T19:52:17.188150" elapsed="0.322397"/>
</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-15T19:52:17.186708" elapsed="0.323957"/>
</kw>
<msg time="2026-04-15T19:52:17.510719" 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-15T19:52:17.186344" elapsed="0.324445"/>
</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-15T19:52:17.185969" elapsed="0.324901"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:52:17.511260" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-04-15T19:52:17.536204" 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-15T19:52:17.511113" elapsed="0.025230"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:52:17.579615" level="INFO">sudo mn --controller=remote,ip=10.30.170.185 --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-15T19:52:17.536659" elapsed="0.043019"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:52:17.882489" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.185:6653
Unable to contact the remote controller at 10.30.170.185:6633
Setting remote controller to 10.30.170.185: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-15T19:52:17.579848" elapsed="0.302801"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-04-15T19:52:15.006153" elapsed="2.876756"/>
</kw>
<suite id="s1-s2-s1" name="010 Restconf Inventory" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:52:17.946073" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4c55810&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-15T19:52:17.945680" elapsed="0.000569"/>
</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-15T19:52:17.956428" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:18.157828" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:18.559839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:18.562332" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:17.953937" elapsed="0.613550">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:18.568337" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:18.567790" elapsed="0.000681"/>
</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-15T19:52:18.568854" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:18.568531" elapsed="0.000444"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:18.567702" elapsed="0.001320"/>
</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-15T19:52:18.569334" 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-15T19:52:18.569953" elapsed="0.000055"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:18.569641" elapsed="0.000455"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:18.569506" elapsed="0.000629"/>
</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-15T19:52:17.953506" elapsed="0.616745">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:20.585228" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:20.786796" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:21.188878" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:21.190816" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:20.582379" elapsed="0.613679">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:21.196975" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:21.196332" elapsed="0.000799"/>
</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-15T19:52:21.197336" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:21.197187" elapsed="0.000203"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:21.196275" elapsed="0.001196"/>
</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-15T19:52:21.197598" 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-15T19:52:21.197883" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:21.197749" elapsed="0.000190"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:21.197672" elapsed="0.000295"/>
</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-15T19:52:20.581852" elapsed="0.616217">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:23.214404" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:23.415913" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:23.817863" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:23.820143" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:23.211771" elapsed="0.612842">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:23.825232" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:23.824825" elapsed="0.000492"/>
</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-15T19:52:23.825548" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:23.825354" elapsed="0.000268"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:23.824783" elapsed="0.000868"/>
</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-15T19:52:23.825835" 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-15T19:52:23.826202" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:23.826023" elapsed="0.000255"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:23.825940" elapsed="0.000376"/>
</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-15T19:52:23.211262" elapsed="0.615204">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:25.840977" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:26.042555" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:26.444609" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:26.446840" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:25.837602" elapsed="0.614528">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:26.452688" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:26.452311" elapsed="0.000484"/>
</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-15T19:52:26.453092" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:26.452900" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:26.452274" elapsed="0.000930"/>
</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-15T19:52:26.453368" 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-15T19:52:26.453723" elapsed="0.000049"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:26.453551" elapsed="0.000271"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:26.453469" elapsed="0.000391"/>
</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-15T19:52:25.836886" elapsed="0.617111">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:28.470218" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:28.671548" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.073622" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.076146" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:28.466770" elapsed="0.614830">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:29.082525" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:29.081920" elapsed="0.000741"/>
</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-15T19:52:29.083044" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:29.082717" elapsed="0.000448"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:29.081859" elapsed="0.001359"/>
</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-15T19:52:29.083498" 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-15T19:52:29.084081" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:29.083811" elapsed="0.000396"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:29.083655" elapsed="0.000620"/>
</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-15T19:52:28.466032" elapsed="0.618486">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:52:29.084760" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:17.946866" elapsed="11.138112">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:17.946332" elapsed="11.139023">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:29.099522" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.301357" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.703572" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.705659" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:29.097171" elapsed="0.613672">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:52:29.711352" elapsed="0.000065"/>
</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-15T19:52:29.711706" elapsed="0.000078"/>
</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-15T19:52:29.712105" elapsed="0.000048"/>
</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-15T19:52:29.096779" elapsed="0.615614">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:31.729705" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:31.931641" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:32.334259" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:32.336319" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:31.726971" elapsed="0.614900">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:52:32.342297" elapsed="0.000055"/>
</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-15T19:52:32.342632" elapsed="0.000046"/>
</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-15T19:52:32.343008" elapsed="0.000046"/>
</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-15T19:52:31.726453" elapsed="0.616825">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:34.360760" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:34.562406" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:34.964651" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:34.966827" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:34.358113" elapsed="0.614087">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:52:34.972666" elapsed="0.000062"/>
</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-15T19:52:34.973051" elapsed="0.000048"/>
</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-15T19:52:34.973395" elapsed="0.000045"/>
</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-15T19:52:34.357586" elapsed="0.616084">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:36.993896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:37.195346" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:37.596772" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:37.598582" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:36.990641" elapsed="0.610267">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:52:37.601132" elapsed="0.000028"/>
</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-15T19:52:37.601288" 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-15T19:52:37.601441" elapsed="0.000020"/>
</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-15T19:52:36.989922" elapsed="0.611642">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:39.618708" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:39.820334" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:40.222488" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:40.224343" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:39.616055" elapsed="0.613301">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:52:40.229791" elapsed="0.000056"/>
</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-15T19:52:40.230123" elapsed="0.000046"/>
</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-15T19:52:40.230456" elapsed="0.000044"/>
</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-15T19:52:39.615598" elapsed="0.615245">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:52:40.231060" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:29.086882" elapsed="11.144385">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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:29.085824" elapsed="11.145810">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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:40.233484" 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-15T19:52:40.232990" elapsed="0.000522"/>
</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-15T19:52:40.242663" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:40.444138" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:40.846536" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:40.848399" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:40.240478" elapsed="0.612879">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:40.853971" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:40.853609" elapsed="0.000441"/>
</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-15T19:52:40.854284" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:40.854089" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:40.853554" elapsed="0.000833"/>
</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-15T19:52:40.854546" 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-15T19:52:40.854922" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:40.854755" elapsed="0.000243"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:40.854649" elapsed="0.000389"/>
</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-15T19:52:40.239987" elapsed="0.615178">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:42.871213" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:43.072594" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:43.475201" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:43.477703" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:42.867819" elapsed="0.615082">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:43.483832" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:43.483183" elapsed="0.000787"/>
</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-15T19:52:43.484326" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:43.484026" elapsed="0.000417"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:43.483123" 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-15T19:52:43.484795" elapsed="0.000055"/>
</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-15T19:52:43.485363" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:43.485096" elapsed="0.000389"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:43.484971" elapsed="0.000572"/>
</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-15T19:52:42.866916" elapsed="0.618872">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:45.500511" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:45.702121" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:46.104420" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:46.106657" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:45.497484" elapsed="0.614209">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:46.112580" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:46.112024" 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-15T19:52:46.113125" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:46.112818" elapsed="0.000427"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:46.111970" elapsed="0.001322"/>
</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-15T19:52:46.113542" 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-15T19:52:46.114116" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:46.113851" elapsed="0.000390"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:46.113699" elapsed="0.000601"/>
</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-15T19:52:45.496676" elapsed="0.617834">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:48.133251" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:48.334877" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:48.736981" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:48.739858" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:48.129909" elapsed="0.614264">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:48.744761" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:48.744355" 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-15T19:52:48.745073" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:48.744886" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:48.744317" elapsed="0.000860"/>
</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-15T19:52:48.745336" 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-15T19:52:48.745694" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:48.745520" elapsed="0.000271"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:48.745439" elapsed="0.000391"/>
</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-15T19:52:48.128576" elapsed="0.617395">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:50.761627" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:50.963152" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.365368" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.367551" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:50.758258" elapsed="0.614553">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:51.373704" elapsed="0.000092"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:51.373134" elapsed="0.000742"/>
</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-15T19:52:51.374158" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:51.373935" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:51.373077" elapsed="0.001186"/>
</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-15T19:52:51.374423" 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-15T19:52:51.374802" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:51.374609" elapsed="0.000273"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:51.374526" elapsed="0.000393"/>
</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-15T19:52:50.757340" elapsed="0.617719">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:52:51.375266" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:40.233687" elapsed="11.141715">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:40.232357" elapsed="11.143287">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:51.377186" 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-15T19:52:51.376467" elapsed="0.000759"/>
</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-15T19:52:51.388203" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.589853" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.991774" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.994876" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:51.385810" elapsed="0.614566">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:52.001256" elapsed="0.000092"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:52.000637" 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-15T19:52:52.001888" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:52.001554" elapsed="0.000459"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:52.000585" elapsed="0.001474"/>
</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-15T19:52:52.002382" elapsed="0.000063"/>
</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-15T19:52:52.003007" elapsed="0.000049"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:52.002700" elapsed="0.000436"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:52.002572" elapsed="0.000635"/>
</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-15T19:52:51.385289" elapsed="0.618224">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:54.019845" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:54.221359" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:54.624047" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:54.625908" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:54.016252" elapsed="0.614836">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:54.631934" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:54.631336" 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-15T19:52:54.632400" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:54.632125" elapsed="0.000393"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:54.631287" elapsed="0.001276"/>
</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-15T19:52:54.632848" 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-15T19:52:54.633397" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:54.633132" elapsed="0.000386"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:54.633009" elapsed="0.000567"/>
</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-15T19:52:54.015410" elapsed="0.618403">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:56.648069" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:56.849467" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:57.251574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:57.253676" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:56.645448" elapsed="0.613426">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:57.259443" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:57.259061" elapsed="0.000465"/>
</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-15T19:52:57.259766" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:57.259561" elapsed="0.000282"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:57.259021" elapsed="0.000852"/>
</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-15T19:52:57.260032" 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-15T19:52:57.260387" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:57.260217" elapsed="0.000248"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:57.260137" elapsed="0.000365"/>
</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-15T19:52:56.644796" elapsed="0.615844">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:59.278476" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:59.480154" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:59.882269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:59.884821" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:59.275570" elapsed="0.614331">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:59.890774" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:59.890172" elapsed="0.000738"/>
</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-15T19:52:59.891251" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:52:59.890964" elapsed="0.000406"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:52:59.890114" elapsed="0.001302"/>
</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-15T19:52:59.891761" 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-15T19:52:59.892323" elapsed="0.000023"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:52:59.892060" elapsed="0.000321"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:52:59.891935" 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-15T19:52:59.274679" elapsed="0.617833">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:01.905923" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.107519" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.509425" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.511415" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:01.902363" elapsed="0.614070">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:02.517757" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:02.516690" elapsed="0.001211"/>
</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-15T19:53:02.518241" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:02.517960" elapsed="0.000399"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:02.516640" elapsed="0.001765"/>
</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-15T19:53:02.518659" 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-15T19:53:02.519308" elapsed="0.000026"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:02.519030" elapsed="0.000347"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:02.518897" elapsed="0.000511"/>
</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-15T19:53:01.901501" elapsed="0.618008">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:53:02.519649" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:51.377465" elapsed="11.142298">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:52:51.375938" elapsed="11.144008">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:02.521092" 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-15T19:53:02.520525" elapsed="0.000596"/>
</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-15T19:53:02.530234" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.731827" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:03.133882" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:03.135810" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:02.528023" elapsed="0.612874">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:03.141646" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:03.141159" elapsed="0.000653"/>
</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-15T19:53:03.142176" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:03.141869" elapsed="0.000435"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:03.141108" elapsed="0.001242"/>
</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-15T19:53:03.142605" 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-15T19:53:03.143217" elapsed="0.000060"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:03.142921" elapsed="0.000448"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:03.142797" elapsed="0.000634"/>
</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-15T19:53:02.527520" elapsed="0.616120">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:05.159474" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:05.361682" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:05.764088" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:05.766306" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:05.156232" elapsed="0.614375">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:05.771302" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:05.770852" elapsed="0.000541"/>
</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-15T19:53:05.771630" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:05.771431" elapsed="0.000274"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:05.770803" 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-15T19:53:05.771923" 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-15T19:53:05.772299" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:05.772118" elapsed="0.000271"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:05.772029" elapsed="0.000399"/>
</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-15T19:53:05.155405" elapsed="0.617174">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:07.788808" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:07.990226" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:08.392404" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:08.394307" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:07.786022" elapsed="0.613456">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:08.400018" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:08.399648" elapsed="0.000454"/>
</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-15T19:53:08.400320" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:08.400139" elapsed="0.000267"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:08.399613" elapsed="0.000824"/>
</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-15T19:53:08.400601" 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-15T19:53:08.400986" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:08.400808" elapsed="0.000257"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:08.400703" elapsed="0.000398"/>
</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-15T19:53:07.785345" elapsed="0.615893">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:10.417137" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:10.618620" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:11.020725" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:11.022590" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:10.413884" elapsed="0.614344">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:11.029117" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:11.028511" elapsed="0.000743"/>
</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-15T19:53:11.029610" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:11.029310" elapsed="0.000446"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:11.028448" elapsed="0.001360"/>
</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-15T19:53:11.030067" 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-15T19:53:11.030621" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:11.030354" elapsed="0.000418"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:11.030230" elapsed="0.000604"/>
</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-15T19:53:10.413043" elapsed="0.618004">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:13.047008" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.248676" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.650684" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.653142" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:13.043800" elapsed="0.614523">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:13.659898" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:13.658616" elapsed="0.001440"/>
</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-15T19:53:13.660523" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:13.660166" elapsed="0.000477"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:13.658555" elapsed="0.002126"/>
</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-15T19:53:13.660879" 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-15T19:53:13.661247" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:13.661071" elapsed="0.000254"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:13.660988" elapsed="0.000375"/>
</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-15T19:53:13.042938" elapsed="0.618567">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:53:13.661644" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:02.521295" elapsed="11.140587">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:02.520146" elapsed="11.141989">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:13.666247" 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-15T19:53:13.663053" elapsed="0.003281"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:53:13.669507" 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-15T19:53:13.666538" elapsed="0.003048"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:53:13.670265" 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-15T19:53:13.669808" elapsed="0.000496"/>
</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-15T19:53:13.680239" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.881626" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:14.283846" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:14.285439" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:13.677929" elapsed="0.609903">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:14.288319" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:14.287991" elapsed="0.000392"/>
</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-15T19:53:14.288580" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:14.288411" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:14.287955" elapsed="0.000702"/>
</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-15T19:53:14.288788" 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-15T19:53:14.289062" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:14.288931" elapsed="0.000184"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:14.288866" elapsed="0.000277"/>
</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-15T19:53:13.677405" elapsed="0.611847">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:16.304641" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:16.506274" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:16.908769" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:16.911394" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:16.301623" elapsed="0.614804">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:16.917339" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:16.916711" elapsed="0.000770"/>
</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-15T19:53:16.917924" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:16.917542" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:16.916651" elapsed="0.001458"/>
</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-15T19:53:16.918375" 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-15T19:53:16.918854" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:16.918691" elapsed="0.000222"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:16.918545" elapsed="0.000397"/>
</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-15T19:53:16.300993" elapsed="0.618058">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:18.937608" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:19.139081" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:19.541087" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:19.543192" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:18.934984" elapsed="0.613446">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:19.549886" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:19.548701" elapsed="0.001328"/>
</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-15T19:53:19.550384" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:19.550088" elapsed="0.000415"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:19.548644" elapsed="0.001909"/>
</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-15T19:53:19.550840" 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-15T19:53:19.551760" elapsed="0.000033"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:19.551411" elapsed="0.000440"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:19.550997" elapsed="0.000892"/>
</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-15T19:53:18.933612" elapsed="0.618433">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:21.567771" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:21.769309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:22.171358" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:22.173389" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:21.564420" elapsed="0.613990">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:22.179282" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:22.178677" elapsed="0.000738"/>
</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-15T19:53:22.179788" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:22.179472" elapsed="0.000436"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:22.178621" elapsed="0.001334"/>
</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-15T19:53:22.180210" 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-15T19:53:22.180846" elapsed="0.000051"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:22.180540" elapsed="0.000448"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:22.180369" elapsed="0.000677"/>
</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-15T19:53:21.563585" elapsed="0.617583">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:24.196097" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:24.397538" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:24.799531" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:24.802124" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:24.193444" elapsed="0.613826">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:24.808084" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:24.807525" elapsed="0.000696"/>
</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-15T19:53:24.808610" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:24.808279" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:24.807472" 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-15T19:53:24.809115" 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-15T19:53:24.809403" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:24.809271" elapsed="0.000187"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:24.809207" 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-15T19:53:24.192834" elapsed="0.616757">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:53:24.809766" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:13.670525" elapsed="11.139344">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:24.810055" elapsed="0.000021"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-15T19:53:13.662409" elapsed="11.147834">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:24.814585" 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-15T19:53:24.810828" elapsed="0.003819"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:53:24.817911" 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-15T19:53:24.814816" elapsed="0.003151"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:53:24.818458" 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-15T19:53:24.818111" elapsed="0.000374"/>
</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-15T19:53:24.827897" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:25.029244" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:25.431320" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:25.433647" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:24.825531" elapsed="0.613184">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:25.439687" elapsed="0.000092"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:25.439065" elapsed="0.000791"/>
</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-15T19:53:25.440223" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:25.439916" elapsed="0.000423"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:25.438998" elapsed="0.001388"/>
</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-15T19:53:25.440644" 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-15T19:53:25.441250" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:25.440975" elapsed="0.000396"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:25.440840" elapsed="0.000592"/>
</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-15T19:53:24.825027" elapsed="0.616633">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:27.457367" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:27.658778" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:28.061068" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:28.063317" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:27.453919" elapsed="0.613625">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:28.068157" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:28.067753" elapsed="0.000493"/>
</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-15T19:53:28.068477" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:28.068283" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:28.067693" elapsed="0.000888"/>
</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-15T19:53:28.068767" 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-15T19:53:28.069135" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:28.068960" elapsed="0.000251"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:28.068877" elapsed="0.000373"/>
</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-15T19:53:27.453073" elapsed="0.616319">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:30.085007" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:30.286532" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:30.688701" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:30.690778" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:30.082040" elapsed="0.613291">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:30.696266" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:30.695511" elapsed="0.000862"/>
</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-15T19:53:30.696613" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:30.696420" elapsed="0.000268"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:30.695473" elapsed="0.001245"/>
</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-15T19:53:30.696911" 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-15T19:53:30.697321" elapsed="0.000037"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:30.697096" elapsed="0.000396"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:30.697015" elapsed="0.000518"/>
</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-15T19:53:30.081331" elapsed="0.616339">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:32.714134" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:32.915622" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:33.317700" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:33.319715" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:32.710763" elapsed="0.614159">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:33.325694" elapsed="0.000133"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:33.325173" 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-15T19:53:33.326232" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:33.325962" elapsed="0.000335"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:33.325124" elapsed="0.001196"/>
</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-15T19:53:33.326581" 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-15T19:53:33.326858" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:33.326715" elapsed="0.000198"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:33.326655" elapsed="0.000285"/>
</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-15T19:53:32.709913" elapsed="0.617126">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:35.341930" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.543456" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.945536" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.948069" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:35.338697" elapsed="0.614517">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:35.953754" elapsed="0.000126"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:35.953390" 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-15T19:53:35.954153" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:35.953970" elapsed="0.000257"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:35.953355" elapsed="0.000902"/>
</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-15T19:53:35.954418" 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-15T19:53:35.954788" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:35.954597" elapsed="0.000269"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:35.954517" elapsed="0.000386"/>
</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-15T19:53:35.337905" elapsed="0.617134">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:53:35.955175" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:24.818635" elapsed="11.136672">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:35.955551" elapsed="0.000030"/>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-04-15T19:53:24.810447" elapsed="11.145375">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:35.956568" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:53:35.956441" elapsed="0.000220"/>
</kw>
<doc>Test suite for RESTCONF inventory</doc>
<status status="FAIL" start="2026-04-15T19:52:17.883014" elapsed="78.073693"/>
</suite>
<suite id="s1-s2-s2" name="020 Restconf Topology" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:53:35.990379" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/json'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4d71a50&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-15T19:53:35.990034" elapsed="0.000505"/>
</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-15T19:53:35.999874" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:36.201151" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:36.603136" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:36.605039" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.997531" elapsed="0.612455">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:36.610707" elapsed="0.000097"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:36.610222" elapsed="0.000750"/>
</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-15T19:53:36.611332" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:36.611038" elapsed="0.000412"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:36.610173" elapsed="0.001324"/>
</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-15T19:53:36.611820" 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-15T19:53:36.612332" elapsed="0.000025"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:36.612104" elapsed="0.000290"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:36.611985" elapsed="0.000436"/>
</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-15T19:53:35.997132" elapsed="0.615383">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:38.629612" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:38.830948" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:39.233022" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:39.234968" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:38.626249" elapsed="0.613754">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:39.240862" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:39.240268" 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-15T19:53:39.241349" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:39.241049" elapsed="0.000422"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:39.240206" elapsed="0.001310"/>
</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-15T19:53:39.241795" 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-15T19:53:39.242356" elapsed="0.000053"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:39.242071" elapsed="0.000427"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:39.241951" elapsed="0.000651"/>
</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-15T19:53:38.625564" elapsed="0.617276">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:41.259399" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:41.460875" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:41.863429" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:41.865880" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:41.255085" elapsed="0.615871">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:41.872425" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:41.871324" elapsed="0.001241"/>
</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-15T19:53:41.872943" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:41.872622" elapsed="0.000443"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:41.871268" elapsed="0.001844"/>
</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-15T19:53:41.873414" 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-15T19:53:41.873987" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:41.873693" elapsed="0.000420"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:41.873573" elapsed="0.000598"/>
</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-15T19:53:41.254372" elapsed="0.619996">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:43.889232" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:44.090520" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:44.492533" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:44.494806" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:43.886148" elapsed="0.613929">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:44.500981" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:44.500356" elapsed="0.000766"/>
</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-15T19:53:44.501476" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:44.501180" elapsed="0.000418"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:44.500297" elapsed="0.001347"/>
</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-15T19:53:44.501952" 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-15T19:53:44.502517" elapsed="0.000050"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:44.502245" elapsed="0.000399"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:44.502120" elapsed="0.000584"/>
</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-15T19:53:43.885451" elapsed="0.617521">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:46.517203" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:46.718507" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.120583" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.124498" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:46.514000" elapsed="0.615624">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:47.130608" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:47.130029" elapsed="0.000799"/>
</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-15T19:53:47.131190" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:53:47.130890" elapsed="0.000420"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:53:47.129974" elapsed="0.001383"/>
</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-15T19:53:47.131636" 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-15T19:53:47.132018" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:53:47.131843" elapsed="0.000255"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:53:47.131761" elapsed="0.000376"/>
</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-15T19:53:46.513284" elapsed="0.618991">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:53:47.132419" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.991077" elapsed="11.141493">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:47.132812" elapsed="0.000032"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:53:47.133043" elapsed="0.000030"/>
</kw>
<doc>Get RESTCONF Topology and validate the result.</doc>
<status status="FAIL" start="2026-04-15T19:53:35.990607" elapsed="11.142679">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:47.134721" 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-15T19:53:47.134139" elapsed="0.000643"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.135437" 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-15T19:53:47.134995" elapsed="0.000481"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.136442" 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-15T19:53:47.135694" elapsed="0.000788"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.137325" 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-15T19:53:47.136719" elapsed="0.000673"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.138081" 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-15T19:53:47.137611" elapsed="0.000507"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.138810" 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-15T19:53:47.138327" elapsed="0.000521"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.139630" 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-15T19:53:47.139059" elapsed="0.000611"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.140358" 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-15T19:53:47.139909" elapsed="0.000561"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.141153" 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-15T19:53:47.140689" elapsed="0.000502"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.141865" 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-15T19:53:47.141401" elapsed="0.000503"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.142726" 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-15T19:53:47.142112" elapsed="0.000677"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.143457" 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-15T19:53:47.143012" elapsed="0.000518"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.144067" 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-15T19:53:47.143752" elapsed="0.000342"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.144550" 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-15T19:53:47.144244" elapsed="0.000332"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.145157" 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-15T19:53:47.144749" elapsed="0.000436"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.145665" 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-15T19:53:47.145341" elapsed="0.000377"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:53:47.146279" 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-15T19:53:47.145881" elapsed="0.000426"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:53:47.149705" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.351032" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.753234" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.755901" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:47.147333" elapsed="0.613713">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:53:47.761551" elapsed="0.000084"/>
</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-15T19:53:47.762177" 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-15T19:53:47.762613" elapsed="0.000050"/>
</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-15T19:53:47.762993" 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-15T19:53:47.763339" 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-15T19:53:47.763678" 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-15T19:53:47.764042" elapsed="0.000278"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:53:47.763922" elapsed="0.000436"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:53:47.763850" elapsed="0.000539"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:53:47.147025" elapsed="0.617469">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:49.771933" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:49.973728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:50.377189" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:50.381070" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:49.766397" elapsed="0.619985">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:53:50.386947" 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-15T19:53:50.387534" 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-15T19:53:50.387931" 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-15T19:53:50.388273" 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-15T19:53:50.388620" 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-15T19:53:50.388992" 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-15T19:53:50.389644" elapsed="0.000055"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:53:50.389364" elapsed="0.000408"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:53:50.389210" elapsed="0.000597"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:53:49.765491" elapsed="0.624444">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:52.396436" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:52.598526" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:53.000635" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:53.002923" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:52.391692" elapsed="0.616912">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:53:53.008970" 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-15T19:53:53.009383" 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-15T19:53:53.009615" 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-15T19:53:53.009849" 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-15T19:53:53.010068" 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-15T19:53:53.010286" 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-15T19:53:53.010636" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:53:53.010476" elapsed="0.000238"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:53:53.010392" elapsed="0.000381"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:53:52.390805" elapsed="0.620105">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:55.017261" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:55.219406" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:55.621590" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:55.623999" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:55.012611" elapsed="0.616540">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:53:55.629620" 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-15T19:53:55.630171" 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-15T19:53:55.630531" 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-15T19:53:55.630948" 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-15T19:53:55.631296" 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-15T19:53:55.631639" 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-15T19:53:55.632038" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:53:55.631921" elapsed="0.000171"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:53:55.631843" elapsed="0.000278"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:53:55.011705" elapsed="0.620524">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:57.638380" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:57.840473" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.242634" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.245666" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:57.633944" elapsed="0.616456">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:53:58.250696" 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-15T19:53:58.251047" elapsed="0.000036"/>
</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-15T19:53:58.251272" 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-15T19:53:58.251483" 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-15T19:53:58.251700" 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-15T19:53:58.251939" 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-15T19:53:58.252289" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:53:58.252129" elapsed="0.000238"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:53:58.252047" elapsed="0.000357"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:53:57.633017" elapsed="0.619523">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:53:58.252666" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:47.146464" elapsed="11.106355">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:47.133578" elapsed="11.119472">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:58.258225" 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-15T19:53:58.254083" elapsed="0.004203"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:53:58.261280" 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-15T19:53:58.258430" elapsed="0.002917"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:53:58.261893" 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-15T19:53:58.261491" elapsed="0.000430"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:53:58.265223" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.466621" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.868936" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.871385" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:58.262909" elapsed="0.613580">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:53:58.877171" 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-15T19:53:58.877700" elapsed="0.000094"/>
</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-15T19:53:58.878023" 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-15T19:53:58.878265" 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-15T19:53:58.878535" 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-15T19:53:58.878840" 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-15T19:53:58.879211" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:53:58.879047" elapsed="0.000240"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:53:58.878956" elapsed="0.000371"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:53:58.262582" elapsed="0.616894">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:00.886524" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:01.088128" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:01.490477" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:01.492589" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:00.881375" elapsed="0.616203">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:01.498093" 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-15T19:54:01.498623" 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-15T19:54:01.499018" 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-15T19:54:01.499353" elapsed="0.000044"/>
</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-15T19:54:01.499699" elapsed="0.000112"/>
</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-15T19:54:01.500121" 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-15T19:54:01.500683" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:01.500432" elapsed="0.000405"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:01.500296" elapsed="0.000614"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:00.880426" elapsed="0.620673">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:03.507446" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:03.709152" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:04.111714" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:04.113917" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:03.502868" elapsed="0.616130">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:04.119353" 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-15T19:54:04.119748" 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-15T19:54:04.119983" 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-15T19:54:04.120192" 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-15T19:54:04.120405" 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-15T19:54:04.120618" 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-15T19:54:04.121013" elapsed="0.000036"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:04.120846" elapsed="0.000251"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:04.120750" elapsed="0.000388"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:03.501939" elapsed="0.619342">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:06.127928" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:06.329344" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:06.731287" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:06.732562" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:06.123681" elapsed="0.611219">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:06.735141" elapsed="0.000028"/>
</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-15T19:54:06.735393" elapsed="0.000026"/>
</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-15T19:54:06.735554" 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-15T19:54:06.735702" elapsed="0.000019"/>
</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-15T19:54:06.735874" 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-15T19:54:06.736025" 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-15T19:54:06.736301" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:06.736185" elapsed="0.000222"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:06.736106" elapsed="0.000331"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:06.122830" elapsed="0.613709">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:08.742802" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:08.944400" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:09.346590" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:09.348665" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:08.738257" elapsed="0.615729">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:09.354479" 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-15T19:54:09.355044" elapsed="0.000063"/>
</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-15T19:54:09.355417" 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-15T19:54:09.355788" 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-15T19:54:09.356209" 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-15T19:54:09.357115" elapsed="0.000060"/>
</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-15T19:54:09.357491" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:09.357370" elapsed="0.000178"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:09.357301" elapsed="0.000275"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:08.737332" elapsed="0.620350">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:11.364174" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:11.566115" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:11.968231" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:11.970310" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:11.359426" elapsed="0.615930">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:11.975854" 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-15T19:54:11.976365" elapsed="0.000055"/>
</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-15T19:54:11.976721" elapsed="0.000160"/>
</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-15T19:54:11.977193" 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-15T19:54:11.977544" 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-15T19:54:11.977919" elapsed="0.000046"/>
</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-15T19:54:11.978474" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:11.978220" elapsed="0.000378"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:11.978090" elapsed="0.000570"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:11.358494" elapsed="0.620449">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:13.985290" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:14.187208" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:14.589125" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:14.591986" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:13.980558" elapsed="0.616473">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:14.597505" 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-15T19:54:14.598029" 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-15T19:54:14.598412" elapsed="0.000025"/>
</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-15T19:54:14.598567" 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-15T19:54:14.598722" 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-15T19:54:14.598889" 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-15T19:54:14.599142" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:14.599029" elapsed="0.000168"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:14.598966" elapsed="0.000260"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:13.979676" elapsed="0.619657">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:16.605783" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:16.808060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:17.210381" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:17.212971" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:16.601113" elapsed="0.617184">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:17.218718" 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-15T19:54:17.219225" 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-15T19:54:17.219462" 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-15T19:54:17.219691" 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-15T19:54:17.219956" 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-15T19:54:17.220177" elapsed="0.000060"/>
</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-15T19:54:17.220577" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:17.220415" elapsed="0.000240"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:17.220323" elapsed="0.000379"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:16.600149" elapsed="0.620822">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:19.228021" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:19.429510" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:19.832013" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:19.834459" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:19.222916" elapsed="0.616664">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:19.839945" 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-15T19:54:19.840328" 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-15T19:54:19.840592" 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-15T19:54:19.840832" 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-15T19:54:19.841086" 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-15T19:54:19.841307" 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-15T19:54:19.841667" elapsed="0.000032"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:19.841509" elapsed="0.000260"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:19.841418" elapsed="0.000393"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:19.221884" elapsed="0.620071">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:21.848368" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:22.050076" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:22.451969" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:22.454069" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:21.843715" elapsed="0.615599">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:22.459832" 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-15T19:54:22.460333" elapsed="0.000054"/>
</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-15T19:54:22.460687" elapsed="0.000074"/>
</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-15T19:54:22.461055" elapsed="0.000044"/>
</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-15T19:54:22.461394" 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-15T19:54:22.461816" elapsed="0.000047"/>
</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-15T19:54:22.462366" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:22.462117" elapsed="0.000383"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:22.461987" elapsed="0.000575"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:21.842790" elapsed="0.619894">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:24.469302" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:24.671336" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:25.073469" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:25.075594" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:24.464464" elapsed="0.616190">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:25.081157" 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-15T19:54:25.081674" elapsed="0.000083"/>
</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-15T19:54:25.082067" 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-15T19:54:25.082400" elapsed="0.000044"/>
</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-15T19:54:25.082770" 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-15T19:54:25.083112" elapsed="0.000044"/>
</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-15T19:54:25.083654" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:25.083404" elapsed="0.000492"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:25.083278" elapsed="0.000683"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:24.463503" elapsed="0.620670">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:27.090611" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:27.292185" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:27.694357" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:27.696829" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:27.085943" elapsed="0.616008">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:27.702444" 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-15T19:54:27.703004" 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-15T19:54:27.703409" 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-15T19:54:27.703699" 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-15T19:54:27.703933" 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-15T19:54:27.704144" 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-15T19:54:27.704501" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:27.704342" elapsed="0.000235"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:27.704253" elapsed="0.000364"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:27.085037" elapsed="0.619743">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:29.715477" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:29.917100" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:30.319490" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:30.321489" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:29.706649" elapsed="0.619981">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:30.327156" 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-15T19:54:30.327701" elapsed="0.000089"/>
</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-15T19:54:30.328198" 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-15T19:54:30.328549" 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-15T19:54:30.328938" 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-15T19:54:30.329284" 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-15T19:54:30.329933" elapsed="0.000056"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:30.329601" elapsed="0.000471"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:30.329456" elapsed="0.000679"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:29.705650" elapsed="0.624707">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:32.336945" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:32.538604" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:32.940523" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:32.942546" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:32.332268" elapsed="0.614899">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:32.947470" elapsed="0.000038"/>
</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-15T19:54:32.947822" elapsed="0.000035"/>
</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-15T19:54:32.948046" elapsed="0.000027"/>
</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-15T19:54:32.948251" 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-15T19:54:32.948465" 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-15T19:54:32.948690" 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-15T19:54:32.949072" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:32.948912" elapsed="0.000248"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:32.948824" elapsed="0.000375"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:32.331331" elapsed="0.618007">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:34.953032" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:35.154292" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:35.555845" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:35.557326" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:34.950211" elapsed="0.609582">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:35.559999" elapsed="0.000025"/>
</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-15T19:54:35.560221" elapsed="0.000024"/>
</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-15T19:54:35.560378" 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-15T19:54:35.560528" elapsed="0.000019"/>
</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-15T19:54:35.560680" 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-15T19:54:35.560853" 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-15T19:54:35.561106" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:35.560992" elapsed="0.000168"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:35.560932" elapsed="0.000257"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:34.949765" elapsed="0.611524">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:37.568093" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:37.769920" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:38.172068" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:38.174307" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:37.563176" elapsed="0.616361">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:38.180096" 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-15T19:54:38.180659" 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-15T19:54:38.181074" 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-15T19:54:38.181421" elapsed="0.000044"/>
</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-15T19:54:38.181787" 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-15T19:54:38.182180" elapsed="0.000047"/>
</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-15T19:54:38.182789" elapsed="0.000050"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:38.182498" elapsed="0.000425"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:38.182357" elapsed="0.000640"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:37.562170" elapsed="0.620978">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:40.190249" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:40.392926" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:40.795298" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:40.797655" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:40.185634" elapsed="0.617418">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:40.803402" 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-15T19:54:40.803792" 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-15T19:54:40.804041" elapsed="0.000035"/>
</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-15T19:54:40.804297" 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-15T19:54:40.804516" 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-15T19:54:40.804738" 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-15T19:54:40.805122" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:40.804959" elapsed="0.000240"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:40.804870" elapsed="0.000369"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:40.184111" elapsed="0.621274">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:42.812161" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:43.014512" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:43.416926" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:43.419215" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:42.807167" elapsed="0.616864">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:43.424387" 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-15T19:54:43.424776" 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-15T19:54:43.425010" 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-15T19:54:43.425220" 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-15T19:54:43.425437" 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-15T19:54:43.425650" 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-15T19:54:43.426028" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:43.425868" elapsed="0.000316"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:43.425781" elapsed="0.000443"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:42.806226" elapsed="0.620169">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:45.433687" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:45.635678" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:46.038176" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:46.041350" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:45.428930" elapsed="0.619414">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:46.049039" 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-15T19:54:46.049639" 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-15T19:54:46.050046" 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-15T19:54:46.050381" elapsed="0.000044"/>
</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-15T19:54:46.050722" elapsed="0.000078"/>
</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-15T19:54:46.051096" elapsed="0.000044"/>
</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-15T19:54:46.051675" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:46.051422" elapsed="0.000410"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:46.051274" elapsed="0.000626"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:45.428050" elapsed="0.624112">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:48.058506" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:48.260300" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:48.662283" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:48.664271" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:48.053907" elapsed="0.615072">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:48.669274" 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-15T19:54:48.669622" elapsed="0.000035"/>
</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-15T19:54:48.669965" 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-15T19:54:48.670181" 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-15T19:54:48.670398" 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-15T19:54:48.670613" 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-15T19:54:48.670983" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:48.670823" elapsed="0.000240"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:48.670719" elapsed="0.000383"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:48.053050" elapsed="0.618185">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:50.678990" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:50.880902" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:51.282997" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:51.285013" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:50.674273" elapsed="0.616812">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:51.291619" 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-15T19:54:51.292229" elapsed="0.000069"/>
</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-15T19:54:51.292655" 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-15T19:54:51.293051" 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-15T19:54:51.293421" 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-15T19:54:51.293813" 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-15T19:54:51.294508" elapsed="0.000062"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:51.294138" elapsed="0.000532"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:51.293995" elapsed="0.000776"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:50.673254" elapsed="0.621762">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:53.301350" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:53.503436" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:53.905544" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:53.907805" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:53.296895" elapsed="0.616332">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:53.913785" elapsed="0.000062"/>
</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-15T19:54:53.914322" 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-15T19:54:53.914634" 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-15T19:54:53.914806" 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-15T19:54:53.914964" 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-15T19:54:53.915116" 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-15T19:54:53.915388" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:53.915267" elapsed="0.000177"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:53.915199" elapsed="0.000275"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:53.295961" elapsed="0.619620">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:55.923273" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:56.124848" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:56.526788" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:56.528838" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:55.918426" elapsed="0.615105">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:56.533886" 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-15T19:54:56.534232" 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-15T19:54:56.534461" 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-15T19:54:56.534669" 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-15T19:54:56.534921" 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-15T19:54:56.535133" 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-15T19:54:56.535509" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:56.535343" elapsed="0.000245"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:56.535240" elapsed="0.000388"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:55.917326" elapsed="0.618468">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:58.542190" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:58.744191" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.146410" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.148442" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:58.537543" elapsed="0.615914">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:59.153969" 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-15T19:54:59.154506" 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-15T19:54:59.154894" 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-15T19:54:59.155284" 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-15T19:54:59.155647" elapsed="0.000054"/>
</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-15T19:54:59.155882" 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-15T19:54:59.156146" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:59.156028" elapsed="0.000173"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:59.155964" elapsed="0.000266"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:58.536625" elapsed="0.619710">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:54:59.156435" level="FAIL">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:53:58.262076" elapsed="60.894464">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:59.156698" elapsed="0.000022"/>
</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-15T19:54:59.156871" 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-15T19:54:59.157025" elapsed="0.000020"/>
</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-15T19:54:59.157166" elapsed="0.000322"/>
</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-15T19:54:59.157630" 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-15T19:54:59.157798" elapsed="0.000021"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-15T19:53:58.253493" elapsed="60.904492">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:59.161757" 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-15T19:54:59.158535" elapsed="0.003283"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:54:59.165778" 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-15T19:54:59.161957" elapsed="0.003881"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:54:59.166452" 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-15T19:54:59.165976" elapsed="0.000570"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:54:59.169814" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.371295" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.773196" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.775203" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:59.167594" elapsed="0.612580">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:54:59.780648" 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-15T19:54:59.781011" elapsed="0.000036"/>
</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-15T19:54:59.781236" elapsed="0.000027"/>
</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-15T19:54:59.781440" 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-15T19:54:59.781652" 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-15T19:54:59.781883" 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-15T19:54:59.782237" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:54:59.782078" elapsed="0.000235"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:54:59.781993" elapsed="0.000359"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:54:59.167279" elapsed="0.615209">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:01.789124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:01.991181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:02.393327" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:02.395257" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:01.784281" elapsed="0.616020">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:55:02.400808" 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-15T19:55:02.401306" elapsed="0.000054"/>
</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-15T19:55:02.401662" 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-15T19:55:02.402036" 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-15T19:55:02.402472" 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-15T19:55:02.402845" elapsed="0.000046"/>
</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-15T19:55:02.403391" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:55:02.403140" elapsed="0.000373"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:55:02.403013" elapsed="0.000561"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:55:01.783340" elapsed="0.620474">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:04.410214" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:04.611923" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:05.013964" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:05.015891" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:04.405618" elapsed="0.615420">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:55:05.021515" 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-15T19:55:05.022077" 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-15T19:55:05.022448" 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-15T19:55:05.022809" 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-15T19:55:05.023209" 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-15T19:55:05.023616" elapsed="0.000052"/>
</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-15T19:55:05.024040" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:55:05.023922" elapsed="0.000173"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:55:05.023834" elapsed="0.000292"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:55:04.404655" elapsed="0.619584">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:07.028264" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:07.229584" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:07.630970" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:07.632471" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:07.025210" elapsed="0.609550">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:55:07.635050" elapsed="0.000029"/>
</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-15T19:55:07.635295" elapsed="0.000026"/>
</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-15T19:55:07.635456" 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-15T19:55:07.635607" 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-15T19:55:07.635775" 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-15T19:55:07.635934" 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-15T19:55:07.636192" elapsed="0.000032"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:55:07.636077" elapsed="0.000183"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:55:07.636013" elapsed="0.000288"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:55:07.024759" elapsed="0.611645">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:09.642606" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:09.843908" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.245834" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.247802" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:09.638246" elapsed="0.614777">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:55:10.253513" 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-15T19:55:10.254081" elapsed="0.000067"/>
</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-15T19:55:10.254461" 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-15T19:55:10.254831" 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-15T19:55:10.255206" elapsed="0.000049"/>
</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-15T19:55:10.255561" elapsed="0.000044"/>
</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-15T19:55:10.256179" elapsed="0.000050"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-15T19:55:10.255911" elapsed="0.000397"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-15T19:55:10.255764" elapsed="0.000609"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-15T19:55:09.637296" elapsed="0.619305">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:55:10.256840" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:59.166712" elapsed="11.090402">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:54:59.158186" elapsed="11.099433">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:10.258423" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:55:10.258317" elapsed="0.000188"/>
</kw>
<doc>Test suite for RESTCONF Topology</doc>
<status status="FAIL" start="2026-04-15T19:53:35.957904" elapsed="94.300636"/>
</suite>
<suite id="s1-s2-s3" name="030 Restconf Statistics" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:55:10.290885" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4e65f50&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-15T19:55:10.290504" elapsed="0.000548"/>
</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-15T19:55:10.300603" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.501875" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.903795" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.905872" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:10.298189" elapsed="0.612749">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:10.911788" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:10.911206" elapsed="0.000716"/>
</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-15T19:55:10.912278" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:10.911980" elapsed="0.000416"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:55:10.911147" elapsed="0.001295"/>
</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-15T19:55:10.912695" elapsed="0.000072"/>
</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-15T19:55:10.913337" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:55:10.913065" elapsed="0.000395"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:55:10.912892" elapsed="0.000629"/>
</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-15T19:55:10.297769" elapsed="0.616000">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:12.929468" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:13.131078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:13.533046" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:13.535250" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:12.926689" elapsed="0.614481">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:13.542056" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:13.541442" elapsed="0.000750"/>
</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-15T19:55:13.542582" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:13.542249" elapsed="0.000454"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:55:13.541384" elapsed="0.001405"/>
</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-15T19:55:13.543049" 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-15T19:55:13.543477" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:55:13.543334" elapsed="0.000201"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:55:13.543233" elapsed="0.000330"/>
</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-15T19:55:12.926156" elapsed="0.617515">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:15.559963" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:15.761342" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:16.163193" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:16.165119" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:15.556689" elapsed="0.613538">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:16.171056" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:16.170483" elapsed="0.000705"/>
</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-15T19:55:16.171530" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:16.171244" elapsed="0.000404"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:55:16.170431" elapsed="0.001264"/>
</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-15T19:55:16.171979" 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-15T19:55:16.172565" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:55:16.172261" elapsed="0.000429"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:55:16.172140" elapsed="0.000642"/>
</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-15T19:55:15.556057" elapsed="0.616939">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:18.189346" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:18.390687" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:18.792665" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:18.794925" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:18.186224" elapsed="0.613945">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:18.801030" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:18.800439" elapsed="0.000704"/>
</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-15T19:55:18.801318" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:18.801176" elapsed="0.000195"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:55:18.800388" elapsed="0.001004"/>
</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-15T19:55:18.801505" 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-15T19:55:18.801797" elapsed="0.000026"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:55:18.801644" elapsed="0.000214"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:55:18.801581" elapsed="0.000304"/>
</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-15T19:55:18.185487" elapsed="0.616503">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:20.817546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:21.018953" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:21.421013" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:21.422912" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:20.814067" elapsed="0.613883">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:21.429367" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:21.428213" elapsed="0.001295"/>
</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-15T19:55:21.429941" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:21.429565" elapsed="0.000498"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:55:21.428158" elapsed="0.001956"/>
</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-15T19:55:21.430355" 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-15T19:55:21.430632" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:55:21.430496" elapsed="0.000191"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:55:21.430432" elapsed="0.000285"/>
</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-15T19:55:20.813227" elapsed="0.617614">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:55:21.430947" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:10.291520" elapsed="11.139523">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:10.291121" elapsed="11.140114">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:21.437892" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:21.639146" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:22.041355" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:22.043663" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:21.435537" elapsed="0.613362">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:22.049379" 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-15T19:55:22.049767" elapsed="0.000050"/>
</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-15T19:55:21.435222" elapsed="0.614823">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:24.062071" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:24.263341" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:24.665449" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:24.667888" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:24.057806" elapsed="0.615268">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:24.673390" elapsed="0.000040"/>
</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-15T19:55:24.673620" elapsed="0.000029"/>
</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-15T19:55:24.056965" elapsed="0.616847">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:26.686075" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:26.887330" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:27.289269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:27.291245" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:26.681619" elapsed="0.614746">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:27.296846" elapsed="0.000057"/>
</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-15T19:55:27.297202" elapsed="0.000044"/>
</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-15T19:55:26.680776" elapsed="0.616687">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:29.308649" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:29.510117" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:29.912214" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:29.914125" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:29.305100" elapsed="0.614170">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:29.919718" elapsed="0.000097"/>
</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-15T19:55:29.920120" elapsed="0.000044"/>
</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-15T19:55:29.304241" elapsed="0.616140">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:31.932224" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.133791" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.536260" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.538470" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:31.928811" elapsed="0.614747">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:32.544107" elapsed="0.000070"/>
</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-15T19:55:32.544483" elapsed="0.000137"/>
</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-15T19:55:31.928083" elapsed="0.616810">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:55:32.545115" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:21.431943" elapsed="11.113396">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:21.431513" elapsed="11.114204">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:32.553095" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.754436" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:33.156325" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:33.158471" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:32.550613" elapsed="0.613013">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:33.164093" 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-15T19:55:33.164446" elapsed="0.000045"/>
</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-15T19:55:32.550280" elapsed="0.614522">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:35.174905" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:35.376326" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:35.778305" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:35.780684" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:35.171480" elapsed="0.614213">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:35.786238" elapsed="0.000056"/>
</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-15T19:55:35.786593" elapsed="0.000045"/>
</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-15T19:55:35.170972" elapsed="0.615912">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:37.798991" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:38.000501" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:38.402527" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:38.404673" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:37.794675" elapsed="0.615141">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:38.410289" 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-15T19:55:38.410646" 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-15T19:55:37.793870" elapsed="0.617207">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:40.423716" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:40.625350" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:41.027222" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:41.029278" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:40.419908" elapsed="0.614612">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:41.035081" elapsed="0.000080"/>
</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-15T19:55:41.035598" elapsed="0.000053"/>
</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-15T19:55:40.419023" elapsed="0.616920">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:43.048172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.249952" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.652072" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.654305" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:43.043922" elapsed="0.615515">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:43.659990" 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-15T19:55:43.660356" elapsed="0.000045"/>
</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-15T19:55:43.043028" elapsed="0.617596">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:55:43.660866" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:32.546889" elapsed="11.114241">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:32.546255" elapsed="11.115241">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:43.668919" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.870150" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:44.272274" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:44.274302" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:43.666564" elapsed="0.612651">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:44.279606" elapsed="0.000054"/>
</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-15T19:55:44.279991" 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-15T19:55:43.666245" elapsed="0.613998">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:46.291450" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:46.492885" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:46.894984" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:46.896914" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:46.288108" elapsed="0.614012">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:46.902568" elapsed="0.000057"/>
</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-15T19:55:46.902948" elapsed="0.000046"/>
</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-15T19:55:46.287100" elapsed="0.616115">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:48.914810" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:49.116262" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:49.518480" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:49.520511" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:48.911449" elapsed="0.614101">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:49.526032" 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-15T19:55:49.526408" elapsed="0.000046"/>
</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-15T19:55:48.910850" elapsed="0.615825">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:51.539225" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:51.740691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:52.142925" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:52.144918" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:51.534400" elapsed="0.617131">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:52.152045" elapsed="0.000070"/>
</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-15T19:55:52.152428" elapsed="0.000046"/>
</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-15T19:55:51.533572" elapsed="0.619127">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:54.162143" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:54.363712" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:54.765618" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:54.767657" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:54.158448" elapsed="0.614668">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:54.773577" elapsed="0.000056"/>
</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-15T19:55:54.773957" elapsed="0.000046"/>
</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-15T19:55:54.157903" elapsed="0.616341">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:55:54.774469" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:43.662595" elapsed="11.112080">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:43.661962" elapsed="11.113105">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:54.776242" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:55:54.776021" elapsed="0.000322"/>
</kw>
<doc>Test suite for RESTCONF statistics</doc>
<status status="FAIL" start="2026-04-15T19:55:10.259237" elapsed="44.517141"/>
</suite>
<suite id="s1-s2-s4" name="040 Restconf Frm" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:55:54.809150" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4b11e90&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-15T19:55:54.808792" elapsed="0.000560"/>
</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-15T19:55:54.812549" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.013820" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.415879" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.417897" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:54.809950" elapsed="0.613114">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:54.809426" elapsed="0.614055">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:55.429309" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.630699" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.032812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.035175" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:55.424903" elapsed="0.615366">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:56.040784" elapsed="0.000063"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-15T19:55:55.423928" elapsed="0.617268">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:56.043417" 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-15T19:55:56.042635" elapsed="0.000841"/>
</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-15T19:55:56.050469" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.251721" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.653878" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.656171" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:56.047936" elapsed="0.613396">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:56.662208" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:56.661604" elapsed="0.000737"/>
</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-15T19:55:56.662774" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:56.662401" elapsed="0.000499"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:55:56.661544" elapsed="0.001404"/>
</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-15T19:55:56.663219" 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-15T19:55:56.663570" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:55:56.663442" elapsed="0.000183"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:55:56.663374" elapsed="0.000280"/>
</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-15T19:55:56.047447" elapsed="0.616329">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:58.675051" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:58.876656" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:59.278634" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:59.280031" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:58.671693" elapsed="0.610641">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:59.282784" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:59.282475" elapsed="0.000372"/>
</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-15T19:55:59.283015" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:55:59.282875" elapsed="0.000191"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:55:59.282445" elapsed="0.000642"/>
</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-15T19:55:59.283204" 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-15T19:55:59.283499" elapsed="0.000033"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:55:59.283368" elapsed="0.000200"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:55:59.283295" elapsed="0.000300"/>
</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-15T19:55:58.670928" elapsed="0.612768">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:01.295240" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:01.497041" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:01.899299" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:01.901297" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:01.291639" elapsed="0.617366">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:01.909922" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:01.909285" elapsed="0.000782"/>
</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-15T19:56:01.910577" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:01.910267" elapsed="0.000436"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:01.909229" elapsed="0.001556"/>
</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-15T19:56:01.911093" 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-15T19:56:01.911683" elapsed="0.000074"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:01.911400" elapsed="0.000444"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:01.911265" elapsed="0.000642"/>
</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-15T19:56:01.290477" elapsed="0.621656">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:03.925314" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:04.126660" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:04.528812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:04.530943" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:03.920256" elapsed="0.615814">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:04.536947" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:04.536357" 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-15T19:56:04.537440" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:04.537138" elapsed="0.000425"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:04.536300" elapsed="0.001309"/>
</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-15T19:56:04.537893" 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-15T19:56:04.538442" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:04.538176" elapsed="0.000391"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:04.538055" elapsed="0.000570"/>
</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-15T19:56:03.919064" elapsed="0.619797">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:06.550551" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:06.752179" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.154274" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.157184" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:06.547125" elapsed="0.615217">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:07.163272" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:07.162642" elapsed="0.000768"/>
</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-15T19:56:07.163813" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:07.163478" elapsed="0.000465"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:07.162582" elapsed="0.001407"/>
</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-15T19:56:07.164247" 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-15T19:56:07.164867" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:07.164555" elapsed="0.000439"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:07.164414" elapsed="0.000640"/>
</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-15T19:56:06.546117" elapsed="0.619160">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:56:07.165490" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:56.043865" elapsed="11.121940">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:55:56.041644" elapsed="11.124554">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:07.169555" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.370845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.772306" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.773958" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:07.167048" elapsed="0.610111">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:07.166594" elapsed="0.610852">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:07.781276" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.982702" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:08.384632" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:08.387071" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:07.778333" elapsed="0.614491">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:08.393333" elapsed="0.000064"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-15T19:56:07.777711" elapsed="0.615959">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:08.394689" 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-15T19:56:08.394334" elapsed="0.000382"/>
</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-15T19:56:08.401003" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:08.602422" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:09.004724" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:09.006824" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:08.398679" elapsed="0.613190">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:09.012614" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:09.012114" elapsed="0.000728"/>
</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-15T19:56:09.013208" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:09.012910" elapsed="0.000420"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:09.012064" elapsed="0.001315"/>
</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-15T19:56:09.013668" 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-15T19:56:09.014043" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:09.013923" elapsed="0.000176"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:09.013855" elapsed="0.000274"/>
</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-15T19:56:08.398207" elapsed="0.616023">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:11.026661" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:11.228435" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:11.631410" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:11.633798" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:11.022152" elapsed="0.616968">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:11.640023" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:11.639397" elapsed="0.000761"/>
</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-15T19:56:11.640507" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:11.640215" elapsed="0.000410"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:11.639339" elapsed="0.001331"/>
</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-15T19:56:11.640953" 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-15T19:56:11.641503" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:11.641240" elapsed="0.000386"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:11.641116" elapsed="0.000567"/>
</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-15T19:56:11.020984" elapsed="0.620940">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:13.654647" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:13.856678" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:14.258824" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:14.260882" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:13.649920" elapsed="0.616014">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:14.266872" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:14.266315" elapsed="0.000689"/>
</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-15T19:56:14.267347" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:14.267060" elapsed="0.000407"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:14.266261" elapsed="0.001252"/>
</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-15T19:56:14.267800" 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-15T19:56:14.268362" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:14.268095" elapsed="0.000389"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:14.267968" elapsed="0.000575"/>
</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-15T19:56:13.648760" elapsed="0.620025">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:16.280358" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:16.481795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:16.884139" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:16.886346" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:16.277181" elapsed="0.614168">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:16.892160" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:16.891603" elapsed="0.000693"/>
</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-15T19:56:16.892632" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:16.892351" elapsed="0.000428"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:16.891551" elapsed="0.001278"/>
</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-15T19:56:16.893129" 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-15T19:56:16.893674" elapsed="0.000049"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:16.893411" elapsed="0.000437"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:16.893291" elapsed="0.000625"/>
</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-15T19:56:16.276038" elapsed="0.617994">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:18.906360" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.107782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.510146" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.513336" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:18.901967" elapsed="0.618712">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:19.522615" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:19.521133" elapsed="0.001672"/>
</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-15T19:56:19.523193" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:19.522870" elapsed="0.000444"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:19.521058" elapsed="0.002303"/>
</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-15T19:56:19.523655" elapsed="0.000123"/>
</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-15T19:56:19.524334" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:19.524053" elapsed="0.000404"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:19.523912" elapsed="0.000605"/>
</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-15T19:56:18.900798" elapsed="0.624044">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:56:19.525037" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:08.394939" elapsed="11.130244">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:08.393887" elapsed="11.131565">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:19.529902" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.731348" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.133492" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.135961" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:19.526391" elapsed="0.614813">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:19.525814" elapsed="0.615865">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:20.146311" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.347635" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.749474" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.751407" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:20.143273" elapsed="0.613127">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:20.756888" elapsed="0.000060"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-15T19:56:20.142172" elapsed="0.615103">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:20.759464" 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-15T19:56:20.758672" elapsed="0.000853"/>
</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-15T19:56:20.769551" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.970909" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:21.372707" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:21.374796" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:20.767306" elapsed="0.612417">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:21.380331" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:21.379993" elapsed="0.000421"/>
</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-15T19:56:21.380623" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:21.380449" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:21.379952" elapsed="0.000773"/>
</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-15T19:56:21.380950" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:56:21.380897" elapsed="0.000111"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:21.380879" elapsed="0.000159"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:56:21.380824" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:21.380802" elapsed="0.000295"/>
</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-15T19:56:21.381255" elapsed="0.000029"/>
</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-15T19:56:21.381600" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:21.381435" elapsed="0.000241"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:21.381357" elapsed="0.000355"/>
</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-15T19:56:20.766800" elapsed="0.615069">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:23.399529" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:23.600981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:24.003015" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:24.005168" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:23.395172" elapsed="0.616301">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:24.012341" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:24.011784" elapsed="0.000706"/>
</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-15T19:56:24.012907" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:24.012548" elapsed="0.000487"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:24.011696" elapsed="0.001385"/>
</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-15T19:56:24.013440" elapsed="0.000033"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:56:24.013339" elapsed="0.000243"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:24.013299" elapsed="0.000335"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:56:24.013209" elapsed="0.000476"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:24.013172" elapsed="0.000589"/>
</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-15T19:56:24.014034" elapsed="0.000036"/>
</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-15T19:56:24.014428" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:24.014236" elapsed="0.000275"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:24.014153" elapsed="0.000399"/>
</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-15T19:56:23.394335" elapsed="0.620362">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:26.030179" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:26.231581" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:26.634209" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:26.636532" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:26.027426" elapsed="0.614160">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:26.642540" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:26.641984" elapsed="0.000691"/>
</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-15T19:56:26.643064" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:26.642758" elapsed="0.000425"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:26.641929" elapsed="0.001299"/>
</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-15T19:56:26.643555" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:56:26.643473" elapsed="0.000168"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:26.643443" elapsed="0.000245"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:56:26.643351" elapsed="0.000414"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:26.643315" elapsed="0.000500"/>
</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-15T19:56:26.644075" elapsed="0.000047"/>
</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-15T19:56:26.644680" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:26.644411" elapsed="0.000425"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:26.644283" elapsed="0.000612"/>
</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-15T19:56:26.026826" elapsed="0.618306">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:28.661177" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:28.862618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:29.265215" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:29.267775" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:28.658394" elapsed="0.614395">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:29.273636" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:29.273065" elapsed="0.000743"/>
</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-15T19:56:29.274163" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:29.273864" elapsed="0.000414"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:29.273009" elapsed="0.001315"/>
</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-15T19:56:29.274636" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:56:29.274559" elapsed="0.000160"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:29.274529" elapsed="0.000266"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:56:29.274444" elapsed="0.000400"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:29.274410" elapsed="0.000478"/>
</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-15T19:56:29.275223" elapsed="0.000064"/>
</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-15T19:56:29.275840" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:29.275538" elapsed="0.000427"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:29.275413" elapsed="0.000610"/>
</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-15T19:56:28.657774" elapsed="0.618472">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:31.293313" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:31.494816" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:31.896888" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:31.899334" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:31.289957" elapsed="0.615231">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:31.906067" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:31.905450" elapsed="0.000769"/>
</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-15T19:56:31.906429" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:31.906276" elapsed="0.000207"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:31.905398" elapsed="0.001105"/>
</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-15T19:56:31.906649" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:56:31.906612" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:31.906599" elapsed="0.000112"/>
</if>
<status status="NOT RUN" start="2026-04-15T19:56:31.906558" elapsed="0.000189"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:56:31.906542" elapsed="0.000228"/>
</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-15T19:56:31.906884" 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-15T19:56:31.907143" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-15T19:56:31.907016" elapsed="0.000183"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-15T19:56:31.906959" elapsed="0.000266"/>
</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-15T19:56:31.289130" elapsed="0.618193">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:56:31.907423" 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.185', 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.185', 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-15T19:56:20.759913" elapsed="11.147607">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:20.757687" elapsed="11.150019">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:56:31.908278" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:56:31.908178" elapsed="0.000171"/>
</kw>
<doc>Test suite for RESTCONF FRM</doc>
<status status="FAIL" start="2026-04-15T19:55:54.777505" elapsed="37.130876"/>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:56:31.910587" 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-15T19:56:31.910123" elapsed="0.000514"/>
</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-15T19:56:31.910896" elapsed="0.000155"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-15T19:56:31.911232" elapsed="0.000161"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:56:31.915495" 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-15T19:56:31.911523" elapsed="0.004029"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:56:32.180194" 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.540 seconds
[?2004h[jenkins@releng-38640-217-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-15T19:56:31.915691" elapsed="0.264649"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:56:32.180660" elapsed="0.000373"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-04-15T19:56:31.909841" elapsed="0.271319"/>
</kw>
<doc>Test suite for MD-SAL NSF mininet OF13</doc>
<status status="FAIL" start="2026-04-15T19:52:14.975350" elapsed="257.205881"/>
</suite>
<suite id="s1-s3" name="Stat Manager extended" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:56:32.215985" 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-15T19:56:32.215751" elapsed="0.000281"/>
</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-15T19:56:32.218248" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:32.217972" elapsed="0.000334"/>
</branch>
<status status="PASS" start="2026-04-15T19:56:32.217945" elapsed="0.000385"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:56:32.218606" 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-15T19:56:32.218714" 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-15T19:56:32.218452" elapsed="0.000305"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:56:32.219275" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.133" 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-15T19:56:32.218889" elapsed="0.000432"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:56:32.219845" 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-15T19:56:32.219451" elapsed="0.000420"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:56:32.220679" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:56:32.220771" 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-15T19:56:32.220382" 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-15T19:56:32.220930" elapsed="0.000327"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:56:32.222079" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:56:32.836097" 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 Wed Apr 15 19:56:32 UTC 2026

  System load:  0.02               Processes:             111
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:52:17 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:56:32.221762" elapsed="0.614430"/>
</kw>
<msg time="2026-04-15T19:56:32.836257" 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-15T19:56:32.221397" elapsed="0.614923"/>
</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-15T19:56:32.220060" elapsed="0.616350"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:56:32.836792" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-15T19:56:34.015939" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:56:34.016209" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:56:34.016311" 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-15T19:56:32.836573" elapsed="1.179880"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:56:34.016839" elapsed="0.000470"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:56:34.018278" 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-15T19:56:34.017630" 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-15T19:56:34.018896" elapsed="0.000036"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:56:34.018564" elapsed="0.000440"/>
</branch>
<status status="PASS" start="2026-04-15T19:56:34.018516" elapsed="0.000539"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:56:34.019408" elapsed="0.000060"/>
</return>
<status status="PASS" start="2026-04-15T19:56:34.019174" elapsed="0.000367"/>
</branch>
<status status="PASS" start="2026-04-15T19:56:34.019140" elapsed="0.000455"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:56:34.019669" 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-15T19:56:34.024338" elapsed="0.000781"/>
</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-15T19:56:34.025401" elapsed="0.000165"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:56:34.025685" elapsed="0.000113"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:56:34.020334" elapsed="0.005518"/>
</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-15T19:56:32.217440" elapsed="1.808502"/>
</kw>
<msg time="2026-04-15T19:56:34.025994" 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-15T19:56:32.216890" elapsed="1.809153"/>
</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-15T19:56:32.216448" elapsed="1.809674"/>
</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-15T19:56:34.027958" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:56:34.027708" elapsed="0.000307"/>
</branch>
<status status="PASS" start="2026-04-15T19:56:34.027690" elapsed="0.000348"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.028298" 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-15T19:56:34.028403" 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-15T19:56:34.028156" elapsed="0.000274"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:56:34.028983" 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.133" 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-15T19:56:34.028555" elapsed="0.000477"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.029520" 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-15T19:56:34.029159" elapsed="0.000387"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:56:34.030339" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:56:34.030416" 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-15T19:56:34.030058" 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-15T19:56:34.030570" elapsed="0.000332"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.031723" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:56:34.341823" 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 Wed Apr 15 19:56:32 UTC 2026

  System load:  0.02               Processes:             111
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:56:32 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:56:34.031409" elapsed="0.310501"/>
</kw>
<msg time="2026-04-15T19:56:34.341970" 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-15T19:56:34.031079" elapsed="0.310944"/>
</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-15T19:56:34.029744" elapsed="0.312362"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.342439" 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-15T19:56:34.374556" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-15T19:56:34.374837" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:56:34.374940" 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-15T19:56:34.342255" elapsed="0.032735"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:56:34.375293" elapsed="0.000474"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:56:34.376683" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:56:34.376075" elapsed="0.000732"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:56:34.377235" elapsed="0.000032"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:56:34.376970" elapsed="0.000364"/>
</branch>
<status status="PASS" start="2026-04-15T19:56:34.376926" elapsed="0.000458"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:56:34.377763" elapsed="0.000062"/>
</return>
<status status="PASS" start="2026-04-15T19:56:34.377500" elapsed="0.000401"/>
</branch>
<status status="PASS" start="2026-04-15T19:56:34.377468" elapsed="0.000485"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:56:34.378030" 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-15T19:56:34.382620" elapsed="0.000736"/>
</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-15T19:56:34.383663" elapsed="0.000367"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:56:34.384299" elapsed="0.000256"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:56:34.378637" elapsed="0.006037"/>
</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-15T19:56:34.027228" elapsed="0.357681"/>
</kw>
<msg time="2026-04-15T19:56:34.385025" 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-15T19:56:34.026685" elapsed="0.358447"/>
</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-15T19:56:34.026268" elapsed="0.359018"/>
</kw>
<status status="PASS" start="2026-04-15T19:56:32.216184" elapsed="2.169157"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.385850" 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-15T19:56:34.385472" elapsed="0.000404"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:56:34.386352" 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-15T19:56:34.386031" elapsed="0.000362"/>
</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-15T19:56:34.387996" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:56:34.388073" 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-15T19:56:34.387711" elapsed="0.000425"/>
</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-15T19:56:34.388275" elapsed="0.000327"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.389404" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:56:34.707131" 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 Wed Apr 15 19:56:32 UTC 2026

  System load:  0.02               Processes:             111
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:56:34 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:56:34.389090" elapsed="0.318123"/>
</kw>
<msg time="2026-04-15T19:56:34.707271" 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-15T19:56:34.388759" elapsed="0.318562"/>
</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-15T19:56:34.387302" elapsed="0.320099"/>
</kw>
<msg time="2026-04-15T19:56:34.707450" 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-15T19:56:34.386949" elapsed="0.320543"/>
</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-15T19:56:34.386562" elapsed="0.321000"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.707836" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-04-15T19:56:34.730240" 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-15T19:56:34.707714" elapsed="0.022659"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.768648" level="INFO">sudo mn --controller=remote,ip=10.30.170.185 --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-15T19:56:34.730683" elapsed="0.038026"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:56:34.910553" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.185:6653
Unable to contact the remote controller at 10.30.170.185:6633
Setting remote controller to 10.30.170.185: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-15T19:56:34.768874" elapsed="0.141748"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-04-15T19:56:32.215319" elapsed="2.695365"/>
</kw>
<suite id="s1-s3-s1" name="010 SM add upd del flows" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:56:35.065486" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4565fd0&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-15T19:56:35.065103" elapsed="0.000562"/>
</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-15T19:56:35.072642" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.273981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.675998" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.678152" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.069985" elapsed="0.613410">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:35.684061" 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-15T19:56:35.684457" elapsed="0.000027"/>
</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-15T19:56:35.684629" elapsed="0.000020"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:35.069866" elapsed="0.614847">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.068023" elapsed="0.616776">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.066678" elapsed="0.618230">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:36.697493" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:36.898816" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:37.300999" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:37.303697" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:36.693107" elapsed="0.615565">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:37.309259" elapsed="0.000063"/>
</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-15T19:56:37.309643" 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-15T19:56:37.310030" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:36.692836" elapsed="0.617362">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:36.688693" elapsed="0.621649">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:36.685595" elapsed="0.624984">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.321688" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.523172" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.925143" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.927208" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.318207" elapsed="0.614141">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:38.932890" 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-15T19:56:38.933274" 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-15T19:56:38.933630" elapsed="0.000046"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:38.318028" elapsed="0.615805">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.315370" elapsed="0.618604">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.311552" elapsed="0.622655">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:39.944415" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:40.145902" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:40.547815" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:40.549483" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:39.941159" elapsed="0.613930">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:40.555542" elapsed="0.000059"/>
</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-15T19:56:40.555951" 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-15T19:56:40.556311" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:39.940992" elapsed="0.615484">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:39.938203" elapsed="0.618406">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:39.935072" elapsed="0.621785">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:41.569206" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:41.770418" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:42.172466" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:42.174819" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:41.565956" elapsed="0.613983">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:42.180442" elapsed="0.000060"/>
</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-15T19:56:42.180890" 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-15T19:56:42.181252" elapsed="0.000046"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:41.565750" elapsed="0.615672">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:41.561435" elapsed="0.620143">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:41.557965" elapsed="0.623801">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.192979" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.394491" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.796346" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.798618" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.189829" elapsed="0.613793">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:43.804138" elapsed="0.000058"/>
</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-15T19:56:43.804516" 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-15T19:56:43.804900" elapsed="0.000046"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:43.189639" elapsed="0.615431">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.185882" elapsed="0.619323">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.182532" elapsed="0.622894">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:44.816169" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:45.017583" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:45.419526" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:45.421416" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:44.813306" elapsed="0.613040">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:45.426814" elapsed="0.000057"/>
</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-15T19:56:45.427209" 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-15T19:56:45.427571" elapsed="0.000043"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:44.813138" elapsed="0.614623">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:44.809343" elapsed="0.618559">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:44.806216" elapsed="0.621906">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:46.439328" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:46.640840" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:47.043221" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:47.045123" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:46.436162" elapsed="0.614411">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:47.051109" elapsed="0.000063"/>
</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-15T19:56:47.051508" elapsed="0.000050"/>
</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-15T19:56:47.051919" elapsed="0.000050"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:46.435998" elapsed="0.616103">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:46.432008" elapsed="0.620241">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:46.428919" elapsed="0.623576">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.065459" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.266793" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.668571" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.670921" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.061609" elapsed="0.613585">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:48.675571" 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-15T19:56:48.675854" elapsed="0.000036"/>
</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-15T19:56:48.676096" elapsed="0.000030"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:48.061316" elapsed="0.614894">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.056995" elapsed="0.619309">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.053522" elapsed="0.622944">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:49.689281" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:49.891078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.293141" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.295312" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:49.685160" elapsed="0.615329">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:50.301057" elapsed="0.000065"/>
</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-15T19:56:50.301438" 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-15T19:56:50.301888" elapsed="0.000049"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:49.684889" elapsed="0.617177">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:49.680776" elapsed="0.621427">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:49.677456" elapsed="0.624981">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:56:50.302775" level="FAIL">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.065848" elapsed="15.237106">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.303123" elapsed="0.000021"/>
</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-15T19:56:50.303285" elapsed="0.000020"/>
</kw>
<doc>Initiate tcp connection with controller</doc>
<status status="FAIL" start="2026-04-15T19:56:35.064419" elapsed="15.238976">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.303485" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.304142" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.304581" elapsed="0.000424">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.305348" elapsed="0.000397">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.306069" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.306819" elapsed="0.000410">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.307581" elapsed="0.000386">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.308309" elapsed="0.000398">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.309076" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.309829" elapsed="0.000410">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.310592" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.311260" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.311802" elapsed="0.000408">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.312420" elapsed="0.000386">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.313046" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.313797" elapsed="0.000416">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.314564" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.315233" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.315882" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.316590" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.317210" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.317880" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.318465" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.319091" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.319620" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.320141" elapsed="0.000538">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.320947" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.321515" elapsed="0.000396">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.322132" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.322609" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.323273" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.323862" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.324507" elapsed="0.000420">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.325252" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.326050" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.326822" elapsed="0.000396">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.327505" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.328089" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.328590" elapsed="0.000421">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.329281" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.329849" elapsed="0.000399">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.330504" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.330993" elapsed="0.000376">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.331632" elapsed="0.000323">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.332117" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.332639" elapsed="0.000384">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.333214" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.333661" elapsed="0.000373">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.334221" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.334670" elapsed="0.000463">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.335482" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.336216" elapsed="0.000425">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.337040" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.337853" elapsed="0.000398">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.338604" elapsed="0.000448">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.339373" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.339958" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.340470" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.341189" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.342032" elapsed="0.000422">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.342815" elapsed="0.000424">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.343589" elapsed="0.000444">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.344383" elapsed="0.002251">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.346917" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.347457" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.348026" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.348631" elapsed="0.000390">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.349333" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.349995" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.350465" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.351150" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.351645" elapsed="0.000473">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.352449" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.353208" elapsed="0.000420">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.354017" elapsed="0.000416">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.354797" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.355569" elapsed="0.000443">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.356415" elapsed="0.000386">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.357033" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.357557" elapsed="0.000416">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.358323" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.359059" elapsed="0.000431">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.359870" elapsed="0.000430">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.360622" elapsed="0.000401">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.361286" elapsed="0.000328">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.361823" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.362345" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.362879" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.363339" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.363882" elapsed="0.000397">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.364471" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.365165" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.365884" elapsed="0.000386">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.366619" elapsed="0.000456">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.367465" elapsed="0.000376">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.368069" elapsed="0.000386">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.368746" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.369311" elapsed="0.000366">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.369980" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.370426" elapsed="0.000411">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.371185" elapsed="0.000718">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.372262" elapsed="0.000401">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.373046" elapsed="0.000424">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.373846" elapsed="0.000431">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.374627" elapsed="0.000441">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.375422" elapsed="0.000424">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.376178" elapsed="0.000408">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.376957" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.377608" elapsed="0.000408">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.378341" elapsed="0.000364">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.378958" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.379440" elapsed="0.000364">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.380139" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.380879" elapsed="0.000443">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.381683" elapsed="0.000443">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.382477" elapsed="0.000446">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.383288" elapsed="0.000472">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.384092" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.384693" elapsed="0.000448">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.385346" elapsed="0.000362">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.385916" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.386397" elapsed="0.000407">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.387166" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.387796" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.388406" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.388899" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.389421" elapsed="0.000416">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.390014" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.390453" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.391031" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.391482" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.392103" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.392563" elapsed="0.000482">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.393361" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.394111" elapsed="0.000421">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.394894" elapsed="0.000425">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.395686" elapsed="0.000448">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.396491" elapsed="0.000469">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.397311" elapsed="0.000751">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.398387" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.399164" elapsed="0.000410">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.399943" elapsed="0.000422">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.400719" elapsed="0.000456">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.401522" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.402233" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.402845" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.403335" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.403803" elapsed="0.000348">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.404328" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.404872" elapsed="0.000404">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.405631" elapsed="0.000425">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.406406" elapsed="0.000448">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.407193" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.408015" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.408834" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.409532" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.410137" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.410690" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.411327" elapsed="0.000394">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.411958" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.412518" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.413003" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.413545" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.414245" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.415026" elapsed="0.000407">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.415789" elapsed="0.000364">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.416399" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.417033" elapsed="0.000430">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.417766" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.418323" elapsed="0.000438">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.418987" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.419646" elapsed="0.000390">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.420275" elapsed="0.000408">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.420893" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.422398" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:56:50.422234" elapsed="0.000314"/>
</kw>
<doc>Test suite for Stats Manager flows collection</doc>
<status status="FAIL" start="2026-04-15T19:56:34.910766" elapsed="15.511827">Suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-sanity-only-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-15T19:56:50.476907" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4ed0f10&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-15T19:56:50.476543" elapsed="0.000529"/>
</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-15T19:56:50.483896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.685115" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:51.086927" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:51.088826" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.481133" elapsed="0.612757">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:51.094332" elapsed="0.000056"/>
</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-15T19:56:51.094702" elapsed="0.000077"/>
</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-15T19:56:51.095092" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:50.481013" elapsed="0.614296">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.479128" elapsed="0.616321">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.477796" elapsed="0.617885">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.105516" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.307017" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.709167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.711065" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.102102" elapsed="0.613937">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:52.716497" elapsed="0.000053"/>
</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-15T19:56:52.716902" 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-15T19:56:52.717255" elapsed="0.000044"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:52.101911" elapsed="0.615511">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.098836" elapsed="0.618720">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.096538" elapsed="0.621274">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:53.731395" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:53.932601" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:54.334493" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:54.336379" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:53.726866" elapsed="0.614514">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:54.341875" elapsed="0.000055"/>
</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-15T19:56:54.342250" 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-15T19:56:54.342607" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:53.726556" elapsed="0.616311">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:53.722378" elapsed="0.620633">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:53.718986" elapsed="0.624256">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.356496" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.557957" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.960094" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.961889" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.352300" elapsed="0.614578">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:55.967340" elapsed="0.000056"/>
</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-15T19:56:55.967712" elapsed="0.000076"/>
</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-15T19:56:55.968102" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:55.352003" elapsed="0.616269">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.347720" elapsed="0.620685">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.344088" elapsed="0.624621">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:56.981511" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:57.182828" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:57.584670" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:57.586656" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:56.977497" elapsed="0.614800">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:57.592790" elapsed="0.000059"/>
</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-15T19:56:57.593228" elapsed="0.000050"/>
</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-15T19:56:57.593592" elapsed="0.000047"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:56.977219" elapsed="0.616656">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:56.973082" elapsed="0.620904">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:56.969762" elapsed="0.624337">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:58.603518" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:58.804780" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:59.206664" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:59.208576" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:58.600781" elapsed="0.613238">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:56:59.214508" elapsed="0.000058"/>
</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-15T19:56:59.214918" 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-15T19:56:59.215272" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:56:58.600616" elapsed="0.614827">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:58.598701" elapsed="0.616974">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:58.595365" elapsed="0.620633">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.228175" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.429446" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.831613" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.834486" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.224820" elapsed="0.614932">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:00.840211" elapsed="0.000034"/>
</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-15T19:57:00.840390" 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-15T19:57:00.840549" elapsed="0.000020"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:57:00.224514" elapsed="0.616116">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.220359" elapsed="0.620338">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.217064" elapsed="0.623764">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:01.851541" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:02.052831" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:02.454945" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:02.457062" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:01.848379" elapsed="0.613835">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:02.462778" 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-15T19:57:02.463172" 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-15T19:57:02.463529" elapsed="0.000044"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:57:01.848197" elapsed="0.615627">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:01.845208" elapsed="0.618806">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:01.841908" elapsed="0.622349">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:03.475482" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:03.676910" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:04.078684" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:04.081052" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:03.472183" elapsed="0.614155">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:04.086818" elapsed="0.000053"/>
</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-15T19:57:04.087185" 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-15T19:57:04.087536" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:57:03.472002" elapsed="0.615700">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:03.468618" elapsed="0.619248">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:03.465252" elapsed="0.622836">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.100510" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.301912" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.703829" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.705783" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.096460" elapsed="0.614408">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:05.711393" 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-15T19:57:05.711912" elapsed="0.000050"/>
</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-15T19:57:05.712279" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:57:05.096202" elapsed="0.616252">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.092089" elapsed="0.620505">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.088957" elapsed="0.623907">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:57:05.713078" level="FAIL">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.477231" elapsed="15.236058">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.713653" elapsed="0.000048"/>
</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-15T19:57:05.714045" elapsed="0.000046"/>
</kw>
<doc>Initiate tcp connection with controller</doc>
<status status="FAIL" start="2026-04-15T19:56:50.476306" elapsed="15.238020">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.714489" elapsed="0.000886">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.715558" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.716140" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.716708" elapsed="0.000328">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.717298" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.717871" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.718436" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.719036" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.719604" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.720066" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.720500" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.720948" elapsed="0.000323">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.721441" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.721879" elapsed="0.000531">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.722574" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.723023" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.723456" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.723923" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.724360" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.724892" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.725321" elapsed="0.000258">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.725785" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.726218" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.726720" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.727157" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.727585" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.728083" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.728511" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.728963" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.729403" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.729852" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.730312" elapsed="0.000323">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.730817" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.731248" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.731681" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.732205" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.732641" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.733098" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.733526" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.733985" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.734481" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.734921" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.735352" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.735801" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.736240" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.736743" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.737178" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.737659" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.738306" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.738913" elapsed="0.000498">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.739571" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.740093" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.740581" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.741024" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.741507" elapsed="0.000278">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.741946" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.742378" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.742868" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.743436" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.743980" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.744408" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.744908" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.745331" elapsed="0.000260">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.745786" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.746238" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.746671" elapsed="0.000373">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.747300" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.747883" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.748464" elapsed="0.000323">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.749041" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.749600" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.750177" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.750783" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.751338" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.751872" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.752294" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.752800" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.753245" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.753725" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.754172" elapsed="0.000328">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.754667" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.755113" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.755611" elapsed="0.000362">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.756226" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.756816" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.757338" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.757849" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.758424" elapsed="0.001666">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.760352" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.760943" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.761511" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.762112" elapsed="0.000348">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.762663" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.763115" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.763562" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.764003" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.764435" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.764881" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.765315" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.765828" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.766323" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.766801" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.767443" elapsed="0.000328">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.768013" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.768567" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.769149" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.769704" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.770285" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.770772" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.771201" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.771684" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.772134" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.772637" elapsed="0.000285">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.773080" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.773505" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.774038" elapsed="0.000597">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.774839" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.775287" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.775799" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.776260" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.776704" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.777159" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.777588" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.778095" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.778533" elapsed="0.000285">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.779028" elapsed="0.000518">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.779708" elapsed="0.000362">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.780325" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.780902" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.781460" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.782048" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.782636" elapsed="0.000328">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.783212" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.783815" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.784384" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.784971" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.785494" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.785943" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.786403" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.786859" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.787298" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.787728" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.788325" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.788776" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.789217" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.789649" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.790282" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.790895" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.791456" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.792000" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.792427" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.792930" 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.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.794099" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T19:57:05.793989" elapsed="0.000225"/>
</kw>
<doc>Test suite for Stats Manager flows collection</doc>
<status status="FAIL" start="2026-04-15T19:56:50.423901" elapsed="15.370348">Suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.797171" 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-15T19:57:05.796891" elapsed="0.000326"/>
</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-15T19:57:05.797356" elapsed="0.000148"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-15T19:57:05.797636" elapsed="0.000165"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:57:05.801576" 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-15T19:57:05.797928" elapsed="0.003705"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:57:05.904696" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 31.075 seconds
[?2004h[jenkins@releng-38640-217-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-15T19:57:05.801793" elapsed="0.102981"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:57:05.904916" elapsed="0.000170"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-04-15T19:57:05.796583" elapsed="0.108559"/>
</kw>
<doc>Test suite for the OpenDaylight OpenFlow statistics manager</doc>
<status status="FAIL" start="2026-04-15T19:56:32.182871" elapsed="33.722300"/>
</suite>
<suite id="s1-s4" name="Reconciliation" source="/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation">
<suite id="s1-s4-s1" name="010 Group Flows" source="/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.162265" 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-15T19:57:06.158595" elapsed="0.003703"/>
</kw>
<if>
<branch type="IF" condition="${already_done}">
<return>
<status status="NOT RUN" start="2026-04-15T19:57:06.162518" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:57:06.162398" elapsed="0.000169"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.162373" elapsed="0.000218"/>
</if>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.163109" 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-15T19:57:06.162767" elapsed="0.000386"/>
</kw>
<kw name="Get Variable Value" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.163637" 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-15T19:57:06.163323" elapsed="0.000340"/>
</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-15T19:57:06.164201" elapsed="0.000284"/>
</kw>
<msg time="2026-04-15T19:57:06.164587" level="INFO">${status} = PASS</msg>
<msg time="2026-04-15T19:57:06.164633" 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-15T19:57:06.163852" elapsed="0.000845"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.165280" 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-15T19:57:06.164893" elapsed="0.000413"/>
</kw>
<kw name="ClusterManagement__Compute_Derived_Variables" owner="ClusterManagement">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.166529" 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-15T19:57:06.166262" elapsed="0.000294"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.166981" level="INFO">@{session_list} = [ ]</msg>
<var>@{session_list}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-15T19:57:06.166708" elapsed="0.000299"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.167460" 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-15T19:57:06.167168" elapsed="0.000319"/>
</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-15T19:57:06.170488" elapsed="0.000234"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.171237" level="INFO">${member_ip} = 10.30.170.185</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-15T19:57:06.170903" elapsed="0.000360"/>
</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-15T19:57:06.171420" elapsed="0.000297"/>
</kw>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.172521" 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-15T19:57:06.172225" elapsed="0.000323"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T19:57:06.172594" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T19:57:06.172773" 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-15T19:57:06.171927" elapsed="0.000872"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:57:06.173388" level="INFO">Creating Session using : alias=ClusterManagement__session_1, url=http://10.30.170.185:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f67b0f50&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-15T19:57:06.172959" elapsed="0.000564"/>
</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-15T19:57:06.173701" elapsed="0.000352"/>
</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-15T19:57:06.169923" elapsed="0.004192"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-15T19:57:06.169719" elapsed="0.004442"/>
</iter>
<var>${index}</var>
<value>1</value>
<value>${int_of_members+1}</value>
<status status="PASS" start="2026-04-15T19:57:06.167545" elapsed="0.006650"/>
</for>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.174752" 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-15T19:57:06.174367" elapsed="0.000429"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.175333" level="INFO">${ClusterManagement__index_to_ip_mapping} = {1: '10.30.170.185'}</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-15T19:57:06.174963" elapsed="0.000412"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.175913" 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-15T19:57:06.175539" elapsed="0.000417"/>
</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-15T19:57:06.165803" elapsed="0.010213"/>
</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-15T19:57:06.158278" elapsed="0.017795"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-15T19:57:06.176464" level="INFO">Creating Session using : alias=session, url=http://10.30.170.185:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x76e5f4c1cc10&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-15T19:57:06.176224" elapsed="0.000368"/>
</kw>
<kw name="Convert To Integer" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.177192" 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-15T19:57:06.176880" elapsed="0.000338"/>
</kw>
<kw name="Convert To Integer" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.177720" 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-15T19:57:06.177407" elapsed="0.000354"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.178333" 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-15T19:57:06.177967" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.178893" 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-15T19:57:06.178519" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.181230" 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-15T19:57:06.179095" elapsed="0.002166"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.181872" 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-15T19:57:06.181451" elapsed="0.000448"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.182367" 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-15T19:57:06.182067" elapsed="0.000340"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.182878" 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-15T19:57:06.182569" elapsed="0.000350"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.183378" 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-15T19:57:06.183079" elapsed="0.000341"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.183899" 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-15T19:57:06.183581" elapsed="0.000359"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.184402" 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-15T19:57:06.184100" elapsed="0.000343"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.184917" 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-15T19:57:06.184604" elapsed="0.000355"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.189100" 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-15T19:57:06.185119" elapsed="0.004031"/>
</kw>
<doc>Create controller session and set variables.</doc>
<status status="PASS" start="2026-04-15T19:57:06.157716" elapsed="0.031506"/>
</kw>
<test id="s1-s4-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-15T19:57:06.192440" 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-15T19:57:06.192042" elapsed="0.000425"/>
</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-15T19:57:06.235562" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.235181" elapsed="0.000409"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.236392" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.236114" elapsed="0.000369">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:06.236589" 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-15T19:57:06.235773" elapsed="0.000840"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.237188" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.236794" elapsed="0.000420"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.237536" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:06.237711" 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-15T19:57:06.237377" elapsed="0.000374"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.238164" 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-15T19:57:06.237914" elapsed="0.000294"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.239191" 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-15T19:57:06.238930" elapsed="0.000305"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.239657" 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-15T19:57:06.239395" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.240455" 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-15T19:57:06.240107" elapsed="0.000374"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-04-15T19:57:06.241570" 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-15T19:57:06.241043" elapsed="0.000555"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-04-15T19:57:06.241650" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T19:57:06.241824" 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-15T19:57:06.240670" elapsed="0.001180"/>
</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-15T19:57:06.242003" elapsed="0.000274"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-04-15T19:57:06.239971" elapsed="0.002348"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-04-15T19:57:06.239794" elapsed="0.002560"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T19:57:06.242395" elapsed="0.000027"/>
</return>
<msg time="2026-04-15T19:57:06.242550" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T19:57:06.238581" elapsed="0.003994"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.238279" elapsed="0.004328"/>
</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-15T19:57:06.242800" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:06.242633" elapsed="0.000224"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.238260" elapsed="0.004617"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.247010" 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-15T19:57:06.243020" elapsed="0.004018"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:06.247090" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:06.234548" elapsed="0.012690"/>
</kw>
<msg time="2026-04-15T19:57:06.247306" 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-15T19:57:06.222233" elapsed="0.025121"/>
</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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:06.259374" elapsed="0.000028"/>
</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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:06.271412" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:06.283410" elapsed="0.000027"/>
</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-15T19:57:06.283609" 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-15T19:57:06.283799" elapsed="0.000055"/>
</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-15T19:57:06.284207" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:06.284062" elapsed="0.000201"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:06.284047" 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-15T19:57:06.284426" 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-15T19:57:06.284596" 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-15T19:57:06.284779" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T19:57:06.284018" elapsed="0.000816"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T19:57:06.283913" elapsed="0.000947"/>
</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-15T19:57:06.285008" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:06.285083" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T19:57:06.285205" 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-15T19:57:06.217080" elapsed="0.068150"/>
</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-15T19:57:06.295859" elapsed="0.000334"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.309130" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.308752" elapsed="0.000406"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.309904" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.309671" elapsed="0.000296">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:06.310061" 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-15T19:57:06.309320" elapsed="0.000765"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.310640" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.310255" elapsed="0.000412"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.310983" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:06.311113" 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-15T19:57:06.310846" elapsed="0.000292"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.311538" 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-15T19:57:06.311293" elapsed="0.000288"/>
</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-15T19:57:06.311957" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:06.311648" elapsed="0.000368"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.312486" 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-15T19:57:06.312187" elapsed="0.000325"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.312041" elapsed="0.000506"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.311630" elapsed="0.000939"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.313162" 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-15T19:57:06.312716" elapsed="0.000473"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:06.313281" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T19:57:06.313466" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:06.308123" elapsed="0.005369"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.327225" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.326840" elapsed="0.000413"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.327983" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.327772" elapsed="0.000275">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:06.328142" 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-15T19:57:06.327418" elapsed="0.000748"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.328715" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.328332" elapsed="0.000425"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.329059" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:06.329185" 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-15T19:57:06.328921" elapsed="0.000289"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.329644" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:06.329368" elapsed="0.000320"/>
</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-15T19:57:06.330068" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:06.329777" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.330589" 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-15T19:57:06.330296" elapsed="0.000319"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.330152" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.329757" elapsed="0.000914"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.331269" 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-15T19:57:06.330834" elapsed="0.000461"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:06.331345" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:57:06.331497" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:06.326194" elapsed="0.005327"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.344508" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.344134" elapsed="0.000402"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.345264" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.345051" elapsed="0.000277">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/data.item.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:06.345490" 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-15T19:57:06.344699" elapsed="0.000817"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.346088" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.345683" elapsed="0.000432"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:06.346417" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:06.346546" 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-15T19:57:06.346279" elapsed="0.000293"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.346990" 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-15T19:57:06.346745" elapsed="0.000298"/>
</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-15T19:57:06.347397" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:06.347111" elapsed="0.000345"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.347938" 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-15T19:57:06.347629" elapsed="0.000335"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.347484" elapsed="0.000516"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.347093" elapsed="0.000929"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.348762" 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-15T19:57:06.348169" elapsed="0.000622"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:06.348842" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:57:06.348997" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:06.343578" elapsed="0.005445"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.349454" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-15T19:57:06.349186" elapsed="0.000294"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.350033" 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-15T19:57:06.349649" elapsed="0.000410"/>
</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-15T19:57:06.350671" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:06.350436" elapsed="0.000307"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.350421" elapsed="0.000348"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.351271" 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-15T19:57:06.350915" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.352056" 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-15T19:57:06.351454" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.352241" elapsed="0.000191"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-04-15T19:57:06.350389" elapsed="0.002081"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.353089" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.352845" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.352829" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.353928" 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-15T19:57:06.353547" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.354708" 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-15T19:57:06.354114" 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-15T19:57:06.354914" elapsed="0.000189"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-04-15T19:57:06.352796" 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-15T19:57:06.355566" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.355328" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.355313" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.356344" 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-15T19:57:06.355984" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.357127" 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-15T19:57:06.356528" 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-15T19:57:06.357319" elapsed="0.000199"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-04-15T19:57:06.355282" elapsed="0.002275"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.357999" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.357756" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.357724" elapsed="0.000529"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.358778" 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-15T19:57:06.358400" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.359545" 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-15T19:57:06.358963" elapsed="0.000610"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.359744" elapsed="0.000188"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-04-15T19:57:06.357694" 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-15T19:57:06.360399" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.360155" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.360140" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.361171" 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-15T19:57:06.360812" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.361988" 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-15T19:57:06.361385" 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-15T19:57:06.362176" elapsed="0.000186"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-04-15T19:57:06.360109" 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-15T19:57:06.362841" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.362583" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.362568" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.363585" 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-15T19:57:06.363234" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.364379" 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-15T19:57:06.363783" 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-15T19:57:06.364563" elapsed="0.000200"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-04-15T19:57:06.362538" 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-15T19:57:06.365268" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.365025" elapsed="0.000488"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.365009" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.366056" 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-15T19:57:06.365684" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.366845" 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-15T19:57:06.366239" 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-15T19:57:06.367032" elapsed="0.000185"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-04-15T19:57:06.364977" 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-15T19:57:06.367681" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.367444" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.367429" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.368454" 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-15T19:57:06.368102" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.369237" 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-15T19:57:06.368636" 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-15T19:57:06.369437" elapsed="0.000193"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-04-15T19:57:06.367397" 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-15T19:57:06.370235" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.369990" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.369975" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.371006" 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-15T19:57:06.370633" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.371788" 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-15T19:57:06.371190" 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-15T19:57:06.371975" elapsed="0.000190"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-04-15T19:57:06.369943" elapsed="0.002260"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.372624" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.372387" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.372372" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.373418" 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-15T19:57:06.373034" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.374209" 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-15T19:57:06.373602" 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-15T19:57:06.374396" elapsed="0.000185"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-04-15T19:57:06.372341" 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-15T19:57:06.375057" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.374820" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.374805" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.375822" 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-15T19:57:06.375448" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.376596" 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-15T19:57:06.376006" 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-15T19:57:06.376840" elapsed="0.000188"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-04-15T19:57:06.374773" 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-15T19:57:06.377515" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.377250" elapsed="0.000505"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.377235" elapsed="0.000546"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.378283" 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-15T19:57:06.377925" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.379073" 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-15T19:57:06.378466" 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-15T19:57:06.379264" elapsed="0.000186"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-04-15T19:57:06.377204" 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-15T19:57:06.379926" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.379671" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.379656" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.380682" 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-15T19:57:06.380331" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.381474" 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-15T19:57:06.380881" 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-15T19:57:06.381658" elapsed="0.000207"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-04-15T19:57:06.379625" 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-15T19:57:06.382327" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.382088" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.382071" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.383092" 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-15T19:57:06.382725" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.383871" 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-15T19:57:06.383272" 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-15T19:57:06.384055" elapsed="0.000183"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-04-15T19:57:06.382041" 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-15T19:57:06.384700" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.384463" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.384447" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.385484" 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-15T19:57:06.385107" elapsed="0.000403"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.386264" 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-15T19:57:06.385666" 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-15T19:57:06.386454" elapsed="0.000182"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-04-15T19:57:06.384417" elapsed="0.002256"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.387229" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.386990" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.386975" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.388005" 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-15T19:57:06.387625" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.388839" 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-15T19:57:06.388232" 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-15T19:57:06.389027" elapsed="0.000184"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-04-15T19:57:06.386943" 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-15T19:57:06.389685" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.389450" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.389435" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.390454" 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-15T19:57:06.390094" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.391233" 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-15T19:57:06.390637" 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-15T19:57:06.391418" elapsed="0.000183"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-04-15T19:57:06.389405" elapsed="0.002234"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.392073" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.391834" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.391820" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.392846" 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-15T19:57:06.392469" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.393632" 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-15T19:57:06.393028" 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-15T19:57:06.393835" elapsed="0.000187"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-04-15T19:57:06.391789" 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-15T19:57:06.394479" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.394242" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.394227" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.395246" 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-15T19:57:06.394890" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.396032" 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-15T19:57:06.395429" 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-15T19:57:06.396224" elapsed="0.000185"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-04-15T19:57:06.394196" elapsed="0.002250"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.396881" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.396628" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.396613" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.397661" 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-15T19:57:06.397279" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.398441" 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-15T19:57:06.397859" 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-15T19:57:06.398626" elapsed="0.000200"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-04-15T19:57:06.396583" 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-15T19:57:06.399285" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.399050" elapsed="0.000499"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.399034" elapsed="0.000541"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.400097" 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-15T19:57:06.399725" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.400887" 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-15T19:57:06.400288" 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-15T19:57:06.401074" elapsed="0.000190"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-04-15T19:57:06.399004" elapsed="0.002312"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.401751" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.401499" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.401484" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.402501" 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-15T19:57:06.402148" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.403302" 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-15T19:57:06.402684" 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-15T19:57:06.403487" elapsed="0.000184"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-04-15T19:57:06.401453" elapsed="0.002256"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.404262" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.404024" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.404009" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.405028" 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-15T19:57:06.404655" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.405822" 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-15T19:57:06.405211" 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-15T19:57:06.406009" elapsed="0.000188"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-04-15T19:57:06.403976" elapsed="0.002259"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.406655" elapsed="0.000211"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.406418" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.406402" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.407425" 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-15T19:57:06.407074" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.408226" 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-15T19:57:06.407614" 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-15T19:57:06.408418" elapsed="0.000184"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-04-15T19:57:06.406372" 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-15T19:57:06.409077" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.408841" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.408827" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.409885" 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-15T19:57:06.409497" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.410651" 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-15T19:57:06.410067" 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-15T19:57:06.410855" elapsed="0.000234"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-04-15T19:57:06.408795" elapsed="0.002333"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.411552" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.411314" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.411300" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.412316" 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-15T19:57:06.411963" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.413098" 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-15T19:57:06.412502" 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-15T19:57:06.413298" elapsed="0.000187"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-04-15T19:57:06.411269" 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-15T19:57:06.413955" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.413703" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.413689" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.414700" 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-15T19:57:06.414348" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.415483" 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-15T19:57:06.414898" 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-15T19:57:06.415667" elapsed="0.000200"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-04-15T19:57:06.413658" 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-15T19:57:06.416315" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.416082" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.416067" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.417076" 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-15T19:57:06.416709" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.417877" 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-15T19:57:06.417275" 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-15T19:57:06.418062" elapsed="0.000183"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-04-15T19:57:06.416036" 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-15T19:57:06.418697" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.418462" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.418446" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.419449" 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-15T19:57:06.419101" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.420240" 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-15T19:57:06.419640" 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-15T19:57:06.420426" elapsed="0.000183"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-04-15T19:57:06.418415" elapsed="0.002231"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.421198" elapsed="0.000214"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.420958" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.420943" elapsed="0.000532"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.421999" 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-15T19:57:06.421620" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.422776" 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-15T19:57:06.422182" 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-15T19:57:06.423002" elapsed="0.000185"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-04-15T19:57:06.420911" 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-15T19:57:06.423646" elapsed="0.000203"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.423410" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.423396" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.424409" 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-15T19:57:06.424055" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.425186" 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-15T19:57:06.424589" 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-15T19:57:06.425396" elapsed="0.000185"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-04-15T19:57:06.423365" elapsed="0.002253"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.426057" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.425822" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.425808" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.426813" 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-15T19:57:06.426445" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.427581" 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-15T19:57:06.426994" 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-15T19:57:06.427781" elapsed="0.000195"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-04-15T19:57:06.425776" 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-15T19:57:06.428426" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.428191" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.428177" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.429187" 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-15T19:57:06.428832" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.429986" 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-15T19:57:06.429391" 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-15T19:57:06.430170" elapsed="0.000184"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-04-15T19:57:06.428147" 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-15T19:57:06.430825" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.430577" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.430561" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.431563" 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-15T19:57:06.431217" elapsed="0.000372"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.432340" 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-15T19:57:06.431758" elapsed="0.000610"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.432521" elapsed="0.000181"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-04-15T19:57:06.430530" elapsed="0.002224"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.433178" elapsed="0.000212"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.432937" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.432921" elapsed="0.000532"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.433962" 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-15T19:57:06.433595" elapsed="0.000428"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.434794" 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-15T19:57:06.434185" 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-15T19:57:06.434980" elapsed="0.000185"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-04-15T19:57:06.432891" elapsed="0.002312"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.435623" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.435383" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.435369" elapsed="0.000519"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.436391" 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-15T19:57:06.436037" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.437172" 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-15T19:57:06.436577" 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-15T19:57:06.437371" elapsed="0.000183"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-04-15T19:57:06.435339" elapsed="0.002253"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.438144" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.437905" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.437891" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.438910" 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-15T19:57:06.438539" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.439670" 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-15T19:57:06.439092" 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-15T19:57:06.439871" elapsed="0.000186"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-04-15T19:57:06.437859" 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-15T19:57:06.440512" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.440277" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.440262" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.441297" 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-15T19:57:06.440917" elapsed="0.000406"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.442088" 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-15T19:57:06.441478" 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-15T19:57:06.442274" elapsed="0.000182"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-04-15T19:57:06.440232" elapsed="0.002261"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.442925" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.442672" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.442657" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.443673" 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-15T19:57:06.443316" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.444446" 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-15T19:57:06.443870" 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-15T19:57:06.444631" elapsed="0.000199"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-04-15T19:57:06.442627" elapsed="0.002240"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.445349" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.445046" elapsed="0.000532"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.445031" elapsed="0.000571"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.446118" 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-15T19:57:06.445762" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.446909" 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-15T19:57:06.446309" 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-15T19:57:06.447095" elapsed="0.000191"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-04-15T19:57:06.445001" 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-15T19:57:06.447753" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.447504" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.447489" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.448501" 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-15T19:57:06.448150" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.449288" 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-15T19:57:06.448680" 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-15T19:57:06.449478" elapsed="0.000182"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-04-15T19:57:06.447459" 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-15T19:57:06.450127" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.449893" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.449878" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.450902" 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-15T19:57:06.450527" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.451662" 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-15T19:57:06.451083" elapsed="0.000607"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.451863" elapsed="0.000184"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-04-15T19:57:06.449848" 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-15T19:57:06.452512" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.452269" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.452252" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.453283" 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-15T19:57:06.452918" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.454064" 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-15T19:57:06.453466" 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-15T19:57:06.454248" elapsed="0.000182"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-04-15T19:57:06.452222" 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-15T19:57:06.455019" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.454779" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.454763" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.455784" 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-15T19:57:06.455416" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.456552" 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-15T19:57:06.455968" 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-15T19:57:06.456793" elapsed="0.000188"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-04-15T19:57:06.454716" 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-15T19:57:06.457469" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.457229" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.457187" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.458240" 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-15T19:57:06.457883" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.459018" 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-15T19:57:06.458421" 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-15T19:57:06.459202" elapsed="0.000183"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-04-15T19:57:06.457156" 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-15T19:57:06.459852" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.459602" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.459587" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.460595" 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-15T19:57:06.460246" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.461389" 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-15T19:57:06.460794" 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-15T19:57:06.461575" elapsed="0.000199"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-04-15T19:57:06.459557" elapsed="0.002255"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.462228" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.461993" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.461979" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.462991" 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-15T19:57:06.462624" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.463762" 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-15T19:57:06.463172" 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-15T19:57:06.463948" elapsed="0.000188"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-04-15T19:57:06.461948" 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-15T19:57:06.464588" elapsed="0.000198"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.464353" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.464337" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.465353" 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-15T19:57:06.464991" elapsed="0.000388"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.466143" 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-15T19:57:06.465533" 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-15T19:57:06.466325" elapsed="0.000183"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-04-15T19:57:06.464307" 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-15T19:57:06.466986" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.466723" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.466709" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.467726" 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-15T19:57:06.467379" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.468553" 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-15T19:57:06.467962" 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-15T19:57:06.468752" elapsed="0.000188"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-04-15T19:57:06.466678" 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-15T19:57:06.469423" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.469160" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.469145" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.470188" 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-15T19:57:06.469835" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.470973" 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-15T19:57:06.470371" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.471158" elapsed="0.000184"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-04-15T19:57:06.469114" 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-15T19:57:06.471935" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.471673" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.471658" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.472680" 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-15T19:57:06.472327" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.473488" 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-15T19:57:06.472880" 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-15T19:57:06.473674" elapsed="0.000202"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-04-15T19:57:06.471627" elapsed="0.002287"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.474337" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.474095" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.474080" elapsed="0.000503"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.475097" 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-15T19:57:06.474726" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.475872" 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-15T19:57:06.475278" 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-15T19:57:06.476056" elapsed="0.000187"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-04-15T19:57:06.474050" 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-15T19:57:06.476697" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.476464" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.476449" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.477478" 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-15T19:57:06.477109" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.478250" 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-15T19:57:06.477658" 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-15T19:57:06.478439" elapsed="0.000182"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-04-15T19:57:06.476419" elapsed="0.002239"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.479101" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.478859" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.478842" elapsed="0.000541"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.479905" 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-15T19:57:06.479529" elapsed="0.000403"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.480673" 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-15T19:57:06.480090" 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-15T19:57:06.480878" elapsed="0.000186"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-04-15T19:57:06.478810" 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-15T19:57:06.481553" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.481318" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.481303" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.482316" 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-15T19:57:06.481966" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.483091" 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-15T19:57:06.482501" 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-15T19:57:06.483273" elapsed="0.000184"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-04-15T19:57:06.481272" elapsed="0.002222"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.483923" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.483673" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.483658" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.484670" 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-15T19:57:06.484316" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.485473" 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-15T19:57:06.484867" 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-15T19:57:06.485655" elapsed="0.000200"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-04-15T19:57:06.483628" elapsed="0.002265"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.486312" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.486079" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.486064" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.487074" 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-15T19:57:06.486702" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.487854" 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-15T19:57:06.487261" 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-15T19:57:06.488035" elapsed="0.000182"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-04-15T19:57:06.486033" elapsed="0.002222"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.488797" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.488547" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.488532" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.489572" 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-15T19:57:06.489213" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.490353" 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-15T19:57:06.489769" 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-15T19:57:06.490537" elapsed="0.000185"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-04-15T19:57:06.488501" 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-15T19:57:06.491229" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.490994" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.490980" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.491985" 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-15T19:57:06.491620" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.492756" 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-15T19:57:06.492166" 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-15T19:57:06.492942" elapsed="0.000183"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-04-15T19:57:06.490949" 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-15T19:57:06.493610" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.493377" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.493362" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.494362" 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-15T19:57:06.494014" elapsed="0.000373"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.495145" 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-15T19:57:06.494547" 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-15T19:57:06.495331" elapsed="0.000183"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-04-15T19:57:06.493332" 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-15T19:57:06.495980" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.495728" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.495714" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.496725" 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-15T19:57:06.496375" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.497523" 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-15T19:57:06.496923" 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-15T19:57:06.497706" elapsed="0.000200"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-04-15T19:57:06.495684" elapsed="0.002261"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.498368" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.498127" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.498111" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.499127" 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-15T19:57:06.498772" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.499897" 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-15T19:57:06.499306" 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-15T19:57:06.500080" elapsed="0.000181"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-04-15T19:57:06.498080" 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-15T19:57:06.500708" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.500474" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.500460" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.501493" 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-15T19:57:06.501123" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.502263" 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-15T19:57:06.501672" 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-15T19:57:06.502483" elapsed="0.000182"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-04-15T19:57:06.500430" 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-15T19:57:06.503142" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.502906" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.502891" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.503905" 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-15T19:57:06.503538" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.504673" 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-15T19:57:06.504087" 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-15T19:57:06.504873" elapsed="0.000183"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-04-15T19:57:06.502853" elapsed="0.002241"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.505654" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.505415" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.505401" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.506417" 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-15T19:57:06.506063" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.507198" 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-15T19:57:06.506606" 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-15T19:57:06.507383" elapsed="0.000184"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-04-15T19:57:06.505369" 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-15T19:57:06.508039" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.507804" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.507789" elapsed="0.000494"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.508789" 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-15T19:57:06.508425" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.509561" 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-15T19:57:06.508971" 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-15T19:57:06.509766" elapsed="0.000185"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-04-15T19:57:06.507756" elapsed="0.002232"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.510399" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.510165" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.510150" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.511151" 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-15T19:57:06.510801" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.511928" 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-15T19:57:06.511331" 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-15T19:57:06.512110" elapsed="0.000183"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-04-15T19:57:06.510121" elapsed="0.002209"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.512760" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.512509" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.512493" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.513521" 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-15T19:57:06.513168" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.514342" 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-15T19:57:06.513758" 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-15T19:57:06.514528" elapsed="0.000182"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-04-15T19:57:06.512462" 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-15T19:57:06.515180" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.514944" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.514929" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.515939" 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-15T19:57:06.515572" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.516697" 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-15T19:57:06.516126" elapsed="0.000599"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.516897" elapsed="0.000182"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-04-15T19:57:06.514899" 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-15T19:57:06.517552" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.517318" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.517303" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.518320" 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-15T19:57:06.517964" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.519104" 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-15T19:57:06.518502" 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-15T19:57:06.519289" elapsed="0.000182"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-04-15T19:57:06.517273" 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-15T19:57:06.519947" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.519687" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.519673" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.520683" 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-15T19:57:06.520335" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.521489" 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-15T19:57:06.520881" 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-15T19:57:06.521671" elapsed="0.000201"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-04-15T19:57:06.519642" 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-15T19:57:06.522446" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.522209" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.522194" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.523205" 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-15T19:57:06.522852" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.523992" 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-15T19:57:06.523393" 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-15T19:57:06.524178" elapsed="0.000187"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-04-15T19:57:06.522163" elapsed="0.002239"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.524869" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.524581" elapsed="0.000514"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.524566" elapsed="0.000567"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.525636" 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-15T19:57:06.525279" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.526420" 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-15T19:57:06.525835" 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-15T19:57:06.526605" elapsed="0.000199"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-04-15T19:57:06.524536" 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-15T19:57:06.527255" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.527021" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.527006" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.528015" 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-15T19:57:06.527647" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.528803" 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-15T19:57:06.528202" 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-15T19:57:06.528987" elapsed="0.000208"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-04-15T19:57:06.526976" elapsed="0.002257"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.529663" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.529424" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.529410" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.530419" 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-15T19:57:06.530065" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.531185" 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-15T19:57:06.530598" 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-15T19:57:06.531367" elapsed="0.000189"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-04-15T19:57:06.529379" elapsed="0.002213"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.532027" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.531791" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.531773" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.532779" 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-15T19:57:06.532415" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.533554" 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-15T19:57:06.532961" 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-15T19:57:06.533750" elapsed="0.000185"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-04-15T19:57:06.531726" 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-15T19:57:06.534384" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.534150" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.534136" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.535155" 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-15T19:57:06.534803" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.536066" 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-15T19:57:06.535340" elapsed="0.000754"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.536285" elapsed="0.000185"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-04-15T19:57:06.534106" elapsed="0.002402"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.536945" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.536688" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.536674" elapsed="0.000542"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.537718" 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-15T19:57:06.537368" elapsed="0.000441"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.538552" 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-15T19:57:06.537968" 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-15T19:57:06.538750" elapsed="0.000185"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-04-15T19:57:06.536643" elapsed="0.002330"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.539971" elapsed="0.000204"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.539715" elapsed="0.000504"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.539693" elapsed="0.000550"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.540781" 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-15T19:57:06.540393" elapsed="0.000415"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.541596" 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-15T19:57:06.540964" 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-15T19:57:06.541976" elapsed="0.000193"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-04-15T19:57:06.539650" elapsed="0.002558"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.542653" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.542416" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.542401" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.543441" 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-15T19:57:06.543057" elapsed="0.000411"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.544224" 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-15T19:57:06.543622" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.544408" elapsed="0.000183"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-04-15T19:57:06.542370" 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-15T19:57:06.545060" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.544825" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.544810" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.545830" 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-15T19:57:06.545462" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.546588" 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-15T19:57:06.546012" 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-15T19:57:06.546788" elapsed="0.000187"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-04-15T19:57:06.544779" elapsed="0.002234"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.547429" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.547193" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.547179" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.548197" 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-15T19:57:06.547835" elapsed="0.000388"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.549020" 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-15T19:57:06.548417" 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-15T19:57:06.549217" elapsed="0.000186"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-04-15T19:57:06.547148" 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-15T19:57:06.549877" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.549625" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.549611" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.550629" 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-15T19:57:06.550271" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.551411" 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-15T19:57:06.550826" 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-15T19:57:06.551595" elapsed="0.000201"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-04-15T19:57:06.549580" 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-15T19:57:06.552254" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.552018" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.552003" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.553016" 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-15T19:57:06.552644" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.553832" 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-15T19:57:06.553225" 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-15T19:57:06.554018" elapsed="0.000184"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-04-15T19:57:06.551973" 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-15T19:57:06.554679" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.554441" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.554426" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.555437" 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-15T19:57:06.555085" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.556220" 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-15T19:57:06.555618" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.556403" elapsed="0.000183"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-04-15T19:57:06.554394" elapsed="0.002229"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.557199" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.556944" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.556928" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.557966" 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-15T19:57:06.557596" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.558751" 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-15T19:57:06.558150" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.558939" elapsed="0.000187"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-04-15T19:57:06.556896" elapsed="0.002268"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.559586" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.559351" elapsed="0.000508"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.559336" elapsed="0.000550"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.560396" 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-15T19:57:06.560033" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.561192" 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-15T19:57:06.560580" 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-15T19:57:06.561380" elapsed="0.000187"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-04-15T19:57:06.559305" 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-15T19:57:06.562040" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.561805" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.561790" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.562811" 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-15T19:57:06.562436" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.563573" 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-15T19:57:06.562995" 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-15T19:57:06.563773" elapsed="0.000187"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-04-15T19:57:06.561758" elapsed="0.002241"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.564420" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.564180" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.564165" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.565213" 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-15T19:57:06.564831" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.565986" 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-15T19:57:06.565396" 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-15T19:57:06.566169" elapsed="0.000190"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-04-15T19:57:06.564135" elapsed="0.002261"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.566822" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.566574" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.566559" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.567560" 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-15T19:57:06.567212" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.568342" 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-15T19:57:06.567756" 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-15T19:57:06.568540" elapsed="0.000205"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-04-15T19:57:06.566529" elapsed="0.002256"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.569257" elapsed="0.000196"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.568994" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.568979" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.570025" 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-15T19:57:06.569657" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.570881" 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-15T19:57:06.570204" elapsed="0.000706"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.571067" elapsed="0.000184"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-04-15T19:57:06.568945" 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-15T19:57:06.571764" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.571512" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.571497" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.572518" 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-15T19:57:06.572166" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.573340" 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-15T19:57:06.572701" 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-15T19:57:06.573535" elapsed="0.000185"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-04-15T19:57:06.571466" 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-15T19:57:06.574308" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.574070" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.574055" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.575079" 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-15T19:57:06.574701" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.575869" 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-15T19:57:06.575268" 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-15T19:57:06.576055" elapsed="0.000187"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-04-15T19:57:06.574023" elapsed="0.002256"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.576693" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.576459" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.576444" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.577477" 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-15T19:57:06.577125" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.578257" 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-15T19:57:06.577665" 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-15T19:57:06.578440" elapsed="0.000183"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-04-15T19:57:06.576413" 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-15T19:57:06.579090" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.578856" elapsed="0.000454"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.578842" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.579842" 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-15T19:57:06.579475" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.580612" 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-15T19:57:06.580023" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:06.580810" elapsed="0.000183"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-04-15T19:57:06.578811" 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-15T19:57:06.581469" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.581223" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.581208" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.582244" 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-15T19:57:06.581871" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.583037" 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-15T19:57:06.582428" 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-15T19:57:06.583280" elapsed="0.000223"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-04-15T19:57:06.581178" 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-15T19:57:06.583992" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.583751" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.583719" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.584771" 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-15T19:57:06.584391" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.585575" 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-15T19:57:06.584958" 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-15T19:57:06.585777" elapsed="0.000190"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-04-15T19:57:06.583687" 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-15T19:57:06.586433" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.586195" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.586180" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.587229" 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-15T19:57:06.586859" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.588026" 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-15T19:57:06.587414" 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-15T19:57:06.588215" elapsed="0.000183"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-04-15T19:57:06.586148" 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-15T19:57:06.588863" elapsed="0.000210"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.588615" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.588599" elapsed="0.000538"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.589636" 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-15T19:57:06.589279" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.590420" 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-15T19:57:06.589839" 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-15T19:57:06.590602" elapsed="0.000199"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-04-15T19:57:06.588569" 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-15T19:57:06.591374" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.591132" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.591117" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.592134" 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-15T19:57:06.591783" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.592929" 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-15T19:57:06.592321" 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-15T19:57:06.593958" elapsed="0.000239"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-04-15T19:57:06.591086" elapsed="0.003151"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-04-15T19:57:06.350115" elapsed="0.244153"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.595546" 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-15T19:57:06.594424" elapsed="0.001149"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:06.595677" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T19:57:06.595863" 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-15T19:57:06.294992" elapsed="0.300898"/>
</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-15T19:57:06.597211" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.596928" elapsed="0.000349">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-1/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:06.597378" 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-15T19:57:06.596575" elapsed="0.000827"/>
</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-15T19:57:06.597717" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:06.597474" elapsed="0.000318"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.598301" 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-15T19:57:06.598005" elapsed="0.000321"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:06.597816" elapsed="0.000546"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:06.597456" elapsed="0.000927"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.600679" 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-15T19:57:06.598533" elapsed="0.002172"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T19:57:06.600771" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T19:57:06.600925" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:06.596243" elapsed="0.004707"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.602495" 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-15T19:57:06.602248" elapsed="0.000291"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.602944" 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-15T19:57:06.602691" elapsed="0.000739"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.603851" 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-15T19:57:06.603588" elapsed="0.000307"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.604294" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:06.604053" elapsed="0.000284"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-04-15T19:57:06.605194" 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-15T19:57:06.604961" elapsed="0.000259"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-04-15T19:57:06.605550" 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-15T19:57:06.605375" elapsed="0.000200"/>
</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-15T19:57:06.605725" elapsed="0.000209"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:06.606345" 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-15T19:57:06.606090" elapsed="0.000298"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-04-15T19:57:06.606431" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:57:06.606594" 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-15T19:57:06.604539" elapsed="0.002080"/>
</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-15T19:57:06.611642" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:06.812884" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.214823" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.217181" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:06.608905" elapsed="0.614188">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T19:57:06.606690" elapsed="0.616639">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.223946" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.223456" elapsed="0.000698"/>
</branch>
<status status="FAIL" start="2026-04-15T19:57:06.606673" elapsed="0.617606">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.225359" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:07.225610" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:57:07.225549" elapsed="0.000125"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:07.225515" elapsed="0.000190"/>
</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-15T19:57:07.225940" elapsed="0.000031"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T19:57:07.226037" elapsed="0.000022"/>
</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-15T19:57:06.601307" elapsed="0.624912">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.226422" elapsed="0.000028"/>
</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-15T19:57:06.206167" elapsed="1.020443">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.227070" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.226806" elapsed="0.000389"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:07.226780" elapsed="0.000457"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:07.227288" elapsed="0.000023"/>
</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-15T19:57:06.203583" elapsed="1.023850">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:06.191884" elapsed="1.035684">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:06.189700" elapsed="1.037964">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:06.189327" elapsed="1.038593">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:57:07.233323" 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-15T19:57:07.232586" elapsed="0.000783"/>
</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-15T19:57:07.277430" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.277003" elapsed="0.000457"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.278282" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.278010" elapsed="0.000359">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:07.278471" 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-15T19:57:07.277630" elapsed="0.000867"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.279117" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.278667" elapsed="0.000480"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.279495" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:07.279665" 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-15T19:57:07.279326" elapsed="0.000365"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.280184" 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-15T19:57:07.279875" elapsed="0.000360"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.281314" 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-15T19:57:07.281020" elapsed="0.000360"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.281843" 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-15T19:57:07.281552" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.282643" 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-15T19:57:07.282256" elapsed="0.000414"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-04-15T19:57:07.283757" 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-15T19:57:07.283263" elapsed="0.000522"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-04-15T19:57:07.283838" elapsed="0.000033"/>
</return>
<msg time="2026-04-15T19:57:07.283998" 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-15T19:57:07.282887" elapsed="0.001135"/>
</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-15T19:57:07.284230" elapsed="0.000336"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-04-15T19:57:07.282110" elapsed="0.002499"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-04-15T19:57:07.281920" elapsed="0.002724"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T19:57:07.284686" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:57:07.284865" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T19:57:07.280671" elapsed="0.004220"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.280358" elapsed="0.004567"/>
</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-15T19:57:07.285100" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.284949" elapsed="0.000233"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.280332" elapsed="0.004872"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.285974" 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-15T19:57:07.285357" elapsed="0.000645"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:07.286053" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:07.276348" elapsed="0.009855"/>
</kw>
<msg time="2026-04-15T19:57:07.286265" 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-15T19:57:07.263802" elapsed="0.022519"/>
</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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:07.299679" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:07.311456" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:07.323172" 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-15T19:57:07.323410" 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-15T19:57:07.323588" 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-15T19:57:07.323971" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.323824" elapsed="0.000202"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:07.323810" elapsed="0.000249"/>
</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-15T19:57:07.324201" 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-15T19:57:07.324366" 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-15T19:57:07.324531" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T19:57:07.323780" elapsed="0.000803"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T19:57:07.323663" elapsed="0.000946"/>
</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-15T19:57:07.324768" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:07.324844" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T19:57:07.324961" 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-15T19:57:07.259500" elapsed="0.065486"/>
</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-15T19:57:07.335370" elapsed="0.000336"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.348443" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.348067" elapsed="0.000403"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.349210" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.348986" elapsed="0.000289">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:07.349368" 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-15T19:57:07.348631" elapsed="0.000761"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.349951" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.349554" elapsed="0.000424"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.350274" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:07.350403" 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-15T19:57:07.350138" elapsed="0.000290"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.350850" 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-15T19:57:07.350590" elapsed="0.000305"/>
</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-15T19:57:07.351254" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.350961" elapsed="0.000351"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.351787" 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-15T19:57:07.351480" elapsed="0.000333"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.351336" elapsed="0.000513"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.350944" elapsed="0.000958"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.352499" 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-15T19:57:07.352062" elapsed="0.000464"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:07.352576" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:57:07.352726" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:07.347421" elapsed="0.005345"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.365712" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.365337" elapsed="0.000418"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.366459" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.366254" elapsed="0.000267">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:07.366614" 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-15T19:57:07.365921" elapsed="0.000717"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.367204" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.366822" elapsed="0.000409"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.367526" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:07.367651" 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-15T19:57:07.367392" elapsed="0.000283"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.368125" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:07.367855" 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-15T19:57:07.368520" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.368235" elapsed="0.000343"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.369055" 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-15T19:57:07.368763" elapsed="0.000318"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.368602" elapsed="0.000514"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.368217" elapsed="0.000920"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.369706" 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-15T19:57:07.369288" elapsed="0.000459"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:07.369797" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:57:07.369948" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:07.364708" elapsed="0.005264"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.382802" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.382416" elapsed="0.000414"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.383523" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.383320" elapsed="0.000301">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/data.item.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:07.383717" 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-15T19:57:07.382991" elapsed="0.000766"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.384319" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.383924" elapsed="0.000422"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:07.384649" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:07.384793" 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-15T19:57:07.384508" elapsed="0.000312"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.385220" 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-15T19:57:07.384977" elapsed="0.000289"/>
</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-15T19:57:07.385618" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.385332" elapsed="0.000344"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.386162" 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-15T19:57:07.385870" elapsed="0.000318"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.385701" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.385314" elapsed="0.000931"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.386979" 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-15T19:57:07.386391" elapsed="0.000616"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:07.387056" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:57:07.387209" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:07.381878" elapsed="0.005357"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.387639" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-15T19:57:07.387398" elapsed="0.000266"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.388225" 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-15T19:57:07.387837" elapsed="0.000413"/>
</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-15T19:57:07.388877" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.388623" elapsed="0.000312"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.388609" elapsed="0.000350"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.389457" 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-15T19:57:07.389105" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.390522" 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-15T19:57:07.389638" elapsed="0.000913"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.390709" elapsed="0.000212"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-04-15T19:57:07.388578" 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-15T19:57:07.391368" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.391135" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.391120" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.392186" 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-15T19:57:07.391810" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.392961" 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-15T19:57:07.392369" 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-15T19:57:07.393146" elapsed="0.000183"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-04-15T19:57:07.391091" elapsed="0.002275"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.393794" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.393543" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.393528" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.394534" 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-15T19:57:07.394184" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.395306" 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-15T19:57:07.394715" 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-15T19:57:07.395491" elapsed="0.000183"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-04-15T19:57:07.393498" elapsed="0.002213"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.396155" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.395906" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.395891" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.396921" 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-15T19:57:07.396554" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.397670" 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-15T19:57:07.397102" elapsed="0.000596"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.397871" elapsed="0.000183"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-04-15T19:57:07.395861" 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-15T19:57:07.398512" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.398275" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.398260" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.399277" 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-15T19:57:07.398917" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.400066" 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-15T19:57:07.399467" 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-15T19:57:07.400250" elapsed="0.000187"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-04-15T19:57:07.398230" 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-15T19:57:07.400903" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.400651" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.400637" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.401637" 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-15T19:57:07.401290" elapsed="0.000372"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.402406" 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-15T19:57:07.401832" 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-15T19:57:07.402627" elapsed="0.000201"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-04-15T19:57:07.400607" 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-15T19:57:07.403285" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.403046" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.403031" elapsed="0.000503"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.404070" 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-15T19:57:07.403677" elapsed="0.000419"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.404847" 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-15T19:57:07.404256" 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-15T19:57:07.405031" elapsed="0.000184"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-04-15T19:57:07.403001" elapsed="0.002251"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.405668" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.405434" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.405419" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.406426" 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-15T19:57:07.406077" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.407321" 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-15T19:57:07.406606" elapsed="0.000743"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.407507" elapsed="0.000183"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-04-15T19:57:07.405389" elapsed="0.002338"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.408183" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.407946" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.407911" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.408937" 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-15T19:57:07.408571" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.409685" 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-15T19:57:07.409119" elapsed="0.000594"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.409885" elapsed="0.000183"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-04-15T19:57:07.407880" 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-15T19:57:07.410523" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.410289" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.410275" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.411285" 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-15T19:57:07.410931" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.412080" 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-15T19:57:07.411466" 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-15T19:57:07.412264" elapsed="0.000183"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-04-15T19:57:07.410245" 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-15T19:57:07.412914" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.412662" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.412647" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.413657" 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-15T19:57:07.413307" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.414434" 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-15T19:57:07.413855" 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-15T19:57:07.414654" elapsed="0.000204"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-04-15T19:57:07.412617" 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-15T19:57:07.415318" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.415077" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.415062" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.416094" 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-15T19:57:07.415704" elapsed="0.000416"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.416862" 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-15T19:57:07.416275" 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-15T19:57:07.417047" elapsed="0.000181"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-04-15T19:57:07.415032" 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-15T19:57:07.417679" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.417445" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.417430" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.418436" 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-15T19:57:07.418087" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.419206" 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-15T19:57:07.418616" 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-15T19:57:07.419389" elapsed="0.000181"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-04-15T19:57:07.417400" elapsed="0.002206"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.420043" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.419800" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.419785" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.420798" 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-15T19:57:07.420434" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.421549" 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-15T19:57:07.420979" 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-15T19:57:07.421748" elapsed="0.000185"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-04-15T19:57:07.419754" 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-15T19:57:07.422389" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.422155" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.422141" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.423253" 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-15T19:57:07.422790" elapsed="0.000489"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.424275" 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-15T19:57:07.423433" 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-15T19:57:07.424721" elapsed="0.000469"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-04-15T19:57:07.422110" elapsed="0.003165"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.426247" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.425680" elapsed="0.001098"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.425646" elapsed="0.001256"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.428099" 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-15T19:57:07.427240" elapsed="0.000920"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.429879" 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-15T19:57:07.428513" elapsed="0.001430"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.430296" elapsed="0.000407"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-04-15T19:57:07.425578" elapsed="0.005237"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.431811" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.431214" elapsed="0.001139"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.431181" elapsed="0.001207"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.433147" 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-15T19:57:07.432600" elapsed="0.000585"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.434292" 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-15T19:57:07.433420" elapsed="0.000917"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.434576" elapsed="0.000295"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-04-15T19:57:07.431114" elapsed="0.003813"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.435540" elapsed="0.000295"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.435190" elapsed="0.000729"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.435169" elapsed="0.000788"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.436688" 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-15T19:57:07.436169" elapsed="0.000557"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.437865" 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-15T19:57:07.436978" 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-15T19:57:07.438138" elapsed="0.000270"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-04-15T19:57:07.435125" elapsed="0.003337"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.439100" elapsed="0.000272"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.438724" elapsed="0.000705"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.438703" elapsed="0.000760"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.440223" 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-15T19:57:07.439671" elapsed="0.000589"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.441352" 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-15T19:57:07.440489" elapsed="0.000904"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.441622" elapsed="0.000291"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-04-15T19:57:07.438659" elapsed="0.003309"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.442580" elapsed="0.000292"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.442228" elapsed="0.000702"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.442207" elapsed="0.000757"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.443697" 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-15T19:57:07.443180" elapsed="0.000574"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.444646" 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-15T19:57:07.444011" 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-15T19:57:07.444846" elapsed="0.000184"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-04-15T19:57:07.442163" elapsed="0.002935"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.445521" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.445285" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.445271" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.446279" 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-15T19:57:07.445928" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.447058" 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-15T19:57:07.446460" 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-15T19:57:07.447245" elapsed="0.000186"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-04-15T19:57:07.445241" elapsed="0.002228"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.447911" elapsed="0.000302"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.447649" elapsed="0.000604"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.447634" elapsed="0.000644"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.448800" 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-15T19:57:07.448424" elapsed="0.000403"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.449559" 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-15T19:57:07.448984" 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-15T19:57:07.449759" elapsed="0.000186"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-04-15T19:57:07.447603" 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-15T19:57:07.450397" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.450161" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.450146" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.451153" 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-15T19:57:07.450800" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.451933" 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-15T19:57:07.451336" 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-15T19:57:07.452117" elapsed="0.000183"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-04-15T19:57:07.450116" 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-15T19:57:07.452765" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.452515" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.452500" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.453522" 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-15T19:57:07.453163" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.454297" 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-15T19:57:07.453703" 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-15T19:57:07.454481" elapsed="0.000184"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-04-15T19:57:07.452470" elapsed="0.002232"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.455137" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.454901" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.454886" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.455925" 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-15T19:57:07.455534" elapsed="0.000417"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.456685" 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-15T19:57:07.456107" 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-15T19:57:07.456922" elapsed="0.000183"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-04-15T19:57:07.454855" elapsed="0.002287"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.457556" elapsed="0.000198"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.457320" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.457305" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.458317" 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-15T19:57:07.457961" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.459084" 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-15T19:57:07.458496" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.459267" elapsed="0.000184"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-04-15T19:57:07.457275" elapsed="0.002213"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.459926" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.459666" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.459651" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.460657" 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-15T19:57:07.460312" elapsed="0.000371"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.461434" 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-15T19:57:07.460851" 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-15T19:57:07.461615" elapsed="0.000197"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-04-15T19:57:07.459621" elapsed="0.002228"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.462290" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.462033" elapsed="0.000496"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.462019" elapsed="0.000539"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.463071" 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-15T19:57:07.462700" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.463844" 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-15T19:57:07.463252" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.464039" elapsed="0.000183"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-04-15T19:57:07.461988" 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-15T19:57:07.465451" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.464442" elapsed="0.001239"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.464428" elapsed="0.001277"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.466222" 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-15T19:57:07.465865" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.466999" 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-15T19:57:07.466404" 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-15T19:57:07.467183" elapsed="0.000186"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-04-15T19:57:07.464392" elapsed="0.003014"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.467837" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.467585" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.467570" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.468602" 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-15T19:57:07.468250" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.469408" 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-15T19:57:07.468832" 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-15T19:57:07.469592" elapsed="0.000198"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-04-15T19:57:07.467540" 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-15T19:57:07.470239" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.470006" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.469991" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.471000" 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-15T19:57:07.470632" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.471767" 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-15T19:57:07.471183" 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-15T19:57:07.471964" elapsed="0.000184"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-04-15T19:57:07.469961" 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-15T19:57:07.472597" elapsed="0.000198"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.472362" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.472348" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.473350" 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-15T19:57:07.473000" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.474116" 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-15T19:57:07.473530" 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-15T19:57:07.474301" elapsed="0.000184"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-04-15T19:57:07.472318" elapsed="0.002204"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.474958" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.474702" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.474688" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.475695" 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-15T19:57:07.475346" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.476480" 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-15T19:57:07.475902" 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-15T19:57:07.476666" elapsed="0.000199"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-04-15T19:57:07.474657" 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-15T19:57:07.477318" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.477083" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.477069" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.478072" 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-15T19:57:07.477706" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.478848" 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-15T19:57:07.478255" 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-15T19:57:07.479032" elapsed="0.000182"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-04-15T19:57:07.477039" elapsed="0.002212"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.479704" elapsed="0.000224"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.479434" elapsed="0.000533"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.479419" elapsed="0.000572"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.480489" 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-15T19:57:07.480136" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.481268" 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-15T19:57:07.480671" 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-15T19:57:07.481461" elapsed="0.000185"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-04-15T19:57:07.479389" 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-15T19:57:07.482234" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.481884" elapsed="0.000576"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.481869" elapsed="0.000617"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.483004" 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-15T19:57:07.482631" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.483794" 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-15T19:57:07.483188" 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-15T19:57:07.483996" elapsed="0.000185"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-04-15T19:57:07.481838" 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-15T19:57:07.484636" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.484400" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.484386" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.485398" 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-15T19:57:07.485043" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.486171" 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-15T19:57:07.485579" 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-15T19:57:07.486360" elapsed="0.000182"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-04-15T19:57:07.484355" 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-15T19:57:07.487021" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.486783" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.486768" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.487784" 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-15T19:57:07.487412" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.488560" 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-15T19:57:07.487979" 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-15T19:57:07.488762" elapsed="0.000184"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-04-15T19:57:07.486722" 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-15T19:57:07.489451" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.489168" elapsed="0.000506"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.489152" elapsed="0.000547"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.490211" 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-15T19:57:07.489859" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.490991" 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-15T19:57:07.490401" 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-15T19:57:07.491210" elapsed="0.000185"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-04-15T19:57:07.489121" elapsed="0.002312"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.491886" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.491615" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.491600" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.492628" 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-15T19:57:07.492278" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.493399" 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-15T19:57:07.492826" elapsed="0.000601"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.493585" elapsed="0.000197"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-04-15T19:57:07.491569" 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-15T19:57:07.494238" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.494003" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.493988" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.495002" 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-15T19:57:07.494633" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.495777" 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-15T19:57:07.495184" 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-15T19:57:07.495976" elapsed="0.000182"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-04-15T19:57:07.493957" 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-15T19:57:07.496612" elapsed="0.000198"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.496380" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.496365" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.497366" 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-15T19:57:07.497016" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.498141" 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-15T19:57:07.497547" 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-15T19:57:07.498331" elapsed="0.000182"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-04-15T19:57:07.496335" 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-15T19:57:07.499107" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.498861" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.498722" elapsed="0.000634"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.499883" 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-15T19:57:07.499500" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.500643" 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-15T19:57:07.500068" 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-15T19:57:07.500845" elapsed="0.000186"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-04-15T19:57:07.498691" 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-15T19:57:07.501487" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.501251" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.501236" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.502248" 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-15T19:57:07.501894" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.503075" 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-15T19:57:07.502472" 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-15T19:57:07.503262" elapsed="0.000183"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-04-15T19:57:07.501205" 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-15T19:57:07.503937" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.503663" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.503649" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.504695" 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-15T19:57:07.504334" elapsed="0.000388"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.505470" 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-15T19:57:07.504895" 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-15T19:57:07.505655" elapsed="0.000202"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-04-15T19:57:07.503618" 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-15T19:57:07.506314" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.506075" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.506060" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.507067" 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-15T19:57:07.506702" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.507849" 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-15T19:57:07.507247" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.508033" elapsed="0.000181"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-04-15T19:57:07.506030" 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-15T19:57:07.508677" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.508437" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.508422" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.509428" 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-15T19:57:07.509081" elapsed="0.000373"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.510199" 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-15T19:57:07.509608" 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-15T19:57:07.510381" elapsed="0.000183"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-04-15T19:57:07.508391" elapsed="0.002210"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.511036" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.510795" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.510780" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.511800" 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-15T19:57:07.511422" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.512549" 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-15T19:57:07.511979" 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-15T19:57:07.512745" elapsed="0.000185"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-04-15T19:57:07.510749" 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-15T19:57:07.513385" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.513151" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.513131" elapsed="0.000535"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.514184" 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-15T19:57:07.513829" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.514966" 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-15T19:57:07.514367" 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-15T19:57:07.515159" elapsed="0.000184"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-04-15T19:57:07.513101" 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-15T19:57:07.515954" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.515666" elapsed="0.000516"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.515546" elapsed="0.000661"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.516704" 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-15T19:57:07.516353" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.517479" 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-15T19:57:07.516906" elapsed="0.000601"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.517664" elapsed="0.000202"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-04-15T19:57:07.515516" 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-15T19:57:07.518318" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.518083" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.518068" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.519078" 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-15T19:57:07.518706" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.519854" 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-15T19:57:07.519259" 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-15T19:57:07.520038" elapsed="0.000181"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-04-15T19:57:07.518038" 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-15T19:57:07.520675" elapsed="0.000204"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.520434" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.520420" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.521433" 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-15T19:57:07.521082" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.522207" 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-15T19:57:07.521613" 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-15T19:57:07.522390" elapsed="0.000182"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-04-15T19:57:07.520390" 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-15T19:57:07.523037" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.522803" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.522789" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.523819" 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-15T19:57:07.523445" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.524582" 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-15T19:57:07.523998" 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-15T19:57:07.524779" elapsed="0.000183"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-04-15T19:57:07.522757" 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-15T19:57:07.525451" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.525215" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.525200" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.526207" 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-15T19:57:07.525856" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.526973" 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-15T19:57:07.526388" 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-15T19:57:07.527157" elapsed="0.000182"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-04-15T19:57:07.525170" elapsed="0.002206"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.527821" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.527553" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.527539" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.528567" 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-15T19:57:07.528216" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.529330" 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-15T19:57:07.528760" elapsed="0.000597"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.529512" elapsed="0.000182"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-04-15T19:57:07.527509" 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-15T19:57:07.530165" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.529929" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.529909" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.530918" 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-15T19:57:07.530552" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.531687" 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-15T19:57:07.531099" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.531894" elapsed="0.000184"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-04-15T19:57:07.529879" 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-15T19:57:07.532655" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.532405" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.532284" elapsed="0.000636"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.533420" 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-15T19:57:07.533064" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.534188" 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-15T19:57:07.533600" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.534377" elapsed="0.000183"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-04-15T19:57:07.532254" 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-15T19:57:07.535025" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.534790" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.534775" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.535782" 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-15T19:57:07.535410" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.536539" 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-15T19:57:07.535965" 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-15T19:57:07.536779" elapsed="0.000187"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-04-15T19:57:07.534743" elapsed="0.002260"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.537416" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.537181" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.537166" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.538179" 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-15T19:57:07.537823" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.538951" 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-15T19:57:07.538363" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.539136" elapsed="0.000183"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-04-15T19:57:07.537137" 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-15T19:57:07.539804" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.539534" elapsed="0.000494"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.539519" elapsed="0.000533"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.540546" 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-15T19:57:07.540195" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.541311" 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-15T19:57:07.540727" 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-15T19:57:07.541494" elapsed="0.000181"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-04-15T19:57:07.539489" 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-15T19:57:07.542150" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.541914" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.541900" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.542909" 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-15T19:57:07.542542" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.543673" 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-15T19:57:07.543089" 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-15T19:57:07.543885" elapsed="0.000190"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-04-15T19:57:07.541869" 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-15T19:57:07.544528" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.544291" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.544274" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.545287" 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-15T19:57:07.544935" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.546061" 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-15T19:57:07.545473" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.546246" elapsed="0.000186"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-04-15T19:57:07.544244" 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-15T19:57:07.546903" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.546652" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.546631" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.547643" 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-15T19:57:07.547295" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.548471" 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-15T19:57:07.547888" 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-15T19:57:07.548657" elapsed="0.000201"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-04-15T19:57:07.546602" 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-15T19:57:07.549427" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.549178" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.549060" elapsed="0.000616"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.550191" 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-15T19:57:07.549835" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.550968" 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-15T19:57:07.550380" 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-15T19:57:07.551160" elapsed="0.000184"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-04-15T19:57:07.549030" 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-15T19:57:07.551831" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.551560" elapsed="0.000496"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.551545" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.552571" 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-15T19:57:07.552223" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.553336" 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-15T19:57:07.552766" 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-15T19:57:07.553519" elapsed="0.000182"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-04-15T19:57:07.551515" 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-15T19:57:07.554172" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.553937" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.553922" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.554922" 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-15T19:57:07.554555" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.555677" 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-15T19:57:07.555103" 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-15T19:57:07.555883" elapsed="0.000183"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-04-15T19:57:07.553893" elapsed="0.002210"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.556512" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.556278" elapsed="0.000467"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.556264" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.557273" 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-15T19:57:07.556919" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.558037" 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-15T19:57:07.557451" 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-15T19:57:07.558219" elapsed="0.000185"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-04-15T19:57:07.556234" elapsed="0.002206"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.558914" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.558617" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.558602" elapsed="0.000562"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.559673" 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-15T19:57:07.559316" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.560462" 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-15T19:57:07.559883" elapsed="0.000607"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.560646" elapsed="0.000203"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-04-15T19:57:07.558572" 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-15T19:57:07.561305" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.561067" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.561052" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.562059" 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-15T19:57:07.561689" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.562827" 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-15T19:57:07.562243" 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-15T19:57:07.563010" elapsed="0.000183"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-04-15T19:57:07.561022" elapsed="0.002207"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.563658" elapsed="0.000224"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.563419" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.563405" elapsed="0.000540"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.564435" 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-15T19:57:07.564087" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.565209" 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-15T19:57:07.564614" elapsed="0.000630"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.565425" elapsed="0.000187"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-04-15T19:57:07.563374" 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-15T19:57:07.566195" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.565951" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.565833" elapsed="0.000614"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.566955" 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-15T19:57:07.566590" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.567702" 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-15T19:57:07.567137" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.567911" elapsed="0.000183"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-04-15T19:57:07.565802" 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-15T19:57:07.568550" elapsed="0.000196"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.568310" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.568295" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.569308" 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-15T19:57:07.568958" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.570069" 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-15T19:57:07.569487" elapsed="0.000610"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.570295" elapsed="0.000185"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-04-15T19:57:07.568265" elapsed="0.002253"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.570950" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.570698" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.570683" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.571684" 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-15T19:57:07.571336" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.572459" 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-15T19:57:07.571891" elapsed="0.000595"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.572642" elapsed="0.000200"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-04-15T19:57:07.570653" elapsed="0.002227"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.573317" elapsed="0.000196"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.573058" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.573044" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.574091" 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-15T19:57:07.573715" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.574860" 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-15T19:57:07.574270" 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-15T19:57:07.575045" elapsed="0.000182"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-04-15T19:57:07.573014" elapsed="0.002251"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.575682" elapsed="0.000221"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.575443" elapsed="0.000499"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.575428" elapsed="0.000538"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.576461" 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-15T19:57:07.576106" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.577223" 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-15T19:57:07.576639" 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-15T19:57:07.577405" elapsed="0.000182"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-04-15T19:57:07.575399" elapsed="0.002224"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.578057" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.577823" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.577803" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.578819" 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-15T19:57:07.578453" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.579576" 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-15T19:57:07.578997" elapsed="0.000607"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.579784" elapsed="0.000184"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-04-15T19:57:07.577772" 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-15T19:57:07.580416" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.580183" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.580168" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.581194" 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-15T19:57:07.580841" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.582005" 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-15T19:57:07.581415" 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-15T19:57:07.582190" elapsed="0.000181"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-04-15T19:57:07.580139" 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-15T19:57:07.582948" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.582689" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.582572" elapsed="0.000624"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.583687" 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-15T19:57:07.583338" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.584472" 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-15T19:57:07.583896" 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-15T19:57:07.584655" elapsed="0.000200"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-04-15T19:57:07.582543" 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-15T19:57:07.585305" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.585071" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.585057" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.586056" 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-15T19:57:07.585690" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.586826" 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-15T19:57:07.586237" 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-15T19:57:07.587015" elapsed="0.000183"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-04-15T19:57:07.585027" elapsed="0.002207"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.587649" elapsed="0.000223"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.587416" elapsed="0.000494"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.587401" elapsed="0.000532"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.588423" 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-15T19:57:07.588075" elapsed="0.000373"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.589181" 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-15T19:57:07.588602" elapsed="0.000607"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.589362" elapsed="0.000181"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-04-15T19:57:07.587372" elapsed="0.002207"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.590007" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.589773" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.589757" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.590761" 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-15T19:57:07.590396" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.591515" 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-15T19:57:07.590944" elapsed="0.000599"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.591709" elapsed="0.000204"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-04-15T19:57:07.589712" elapsed="0.002239"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.592363" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.592129" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.592115" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.593159" 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-15T19:57:07.592807" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.593934" 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-15T19:57:07.593347" 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-15T19:57:07.594119" elapsed="0.000182"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-04-15T19:57:07.592085" elapsed="0.002255"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.594764" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.594517" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.594502" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.595506" 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-15T19:57:07.595155" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.596288" 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-15T19:57:07.595695" 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-15T19:57:07.596472" elapsed="0.000183"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-04-15T19:57:07.594473" elapsed="0.002220"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.597128" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.596889" elapsed="0.000467"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.596875" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.597888" 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-15T19:57:07.597522" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.598642" 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-15T19:57:07.598069" elapsed="0.000601"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.598841" elapsed="0.000185"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-04-15T19:57:07.596844" 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-15T19:57:07.599593" elapsed="0.000423"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.599352" elapsed="0.000717"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.599233" elapsed="0.000864"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.600609" 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-15T19:57:07.600248" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.601388" 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-15T19:57:07.600809" elapsed="0.000607"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.601579" elapsed="0.000201"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-04-15T19:57:07.599197" elapsed="0.002621"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.602230" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.601996" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.601981" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.602983" 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-15T19:57:07.602617" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.603775" 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-15T19:57:07.603171" 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-15T19:57:07.603961" elapsed="0.000183"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-04-15T19:57:07.601952" 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-15T19:57:07.604646" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.604410" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.604395" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.605396" 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-15T19:57:07.605049" elapsed="0.000373"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.606157" 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-15T19:57:07.605575" 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-15T19:57:07.606368" elapsed="0.000194"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-04-15T19:57:07.604363" 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-15T19:57:07.607029" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.606794" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.606779" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.607789" 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-15T19:57:07.607416" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.608541" 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-15T19:57:07.607970" 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-15T19:57:07.608722" elapsed="0.000199"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-04-15T19:57:07.606747" 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-15T19:57:07.609366" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.609134" elapsed="0.000451"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.609120" elapsed="0.000488"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.610120" 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-15T19:57:07.609771" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.610888" 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-15T19:57:07.610300" elapsed="0.000616"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.611071" elapsed="0.000182"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-04-15T19:57:07.609090" elapsed="0.002200"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.611727" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.611472" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.611452" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.612489" 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-15T19:57:07.612136" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.613273" 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-15T19:57:07.612669" 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-15T19:57:07.613456" elapsed="0.000182"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-04-15T19:57:07.611422" elapsed="0.002253"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.614104" elapsed="0.000212"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.613871" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.613857" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.614925" 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-15T19:57:07.614547" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.615695" 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-15T19:57:07.615106" 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-15T19:57:07.615932" elapsed="0.000185"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-04-15T19:57:07.613827" elapsed="0.002328"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.616688" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.616436" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.616318" elapsed="0.000634"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.617452" 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-15T19:57:07.617095" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.618242" 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-15T19:57:07.617635" 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-15T19:57:07.618454" elapsed="0.000185"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-04-15T19:57:07.616288" elapsed="0.002389"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.619108" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.618872" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.618858" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.619878" 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-15T19:57:07.619501" elapsed="0.000403"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.620626" 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-15T19:57:07.620060" elapsed="0.000594"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.620826" elapsed="0.000183"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-04-15T19:57:07.618827" 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-15T19:57:07.621480" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.621234" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.621216" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.622231" 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-15T19:57:07.621882" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.623001" 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-15T19:57:07.622417" 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-15T19:57:07.623184" elapsed="0.000186"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-04-15T19:57:07.621180" elapsed="0.002227"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.623921" elapsed="0.001059"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.623584" elapsed="0.001456"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.623569" elapsed="0.001498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.625682" 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-15T19:57:07.625285" elapsed="0.000423"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.626468" 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-15T19:57:07.625882" 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-15T19:57:07.626660" elapsed="0.000208"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-04-15T19:57:07.623539" elapsed="0.003367"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.627329" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.627089" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.627074" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.628094" 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-15T19:57:07.627744" elapsed="0.000441"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.628948" 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-15T19:57:07.628349" 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-15T19:57:07.629133" elapsed="0.000189"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-04-15T19:57:07.627044" 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-15T19:57:07.629787" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.629537" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.629523" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.630530" 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-15T19:57:07.630175" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.631309" 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-15T19:57:07.630710" 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-15T19:57:07.631493" elapsed="0.000203"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-04-15T19:57:07.629493" elapsed="0.002255"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:07.632164" elapsed="0.000218"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.631930" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.631915" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.632977" 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-15T19:57:07.632605" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.633788" 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-15T19:57:07.633158" 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-15T19:57:07.633974" elapsed="0.000182"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-04-15T19:57:07.631885" 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-15T19:57:07.634758" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.634499" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.634368" elapsed="0.000640"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.635502" 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-15T19:57:07.635152" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.636295" 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-15T19:57:07.635705" 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-15T19:57:07.636479" elapsed="0.000183"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-04-15T19:57:07.634338" 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-15T19:57:07.637125" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.636892" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.636878" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.637881" 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-15T19:57:07.637516" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.638636" 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-15T19:57:07.638062" 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-15T19:57:07.638834" elapsed="0.000184"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-04-15T19:57:07.636847" elapsed="0.002208"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-04-15T19:57:07.388306" elapsed="0.250779"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.640431" 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-15T19:57:07.639279" elapsed="0.001181"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:07.640518" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T19:57:07.640682" 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-15T19:57:07.334511" elapsed="0.306198"/>
</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-15T19:57:07.642057" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.641768" elapsed="0.000362">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-group-2/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:07.642224" 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-15T19:57:07.641418" elapsed="0.000830"/>
</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-15T19:57:07.642560" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:07.642318" elapsed="0.000300"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.643148" 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-15T19:57:07.642858" elapsed="0.000316"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:07.642641" elapsed="0.000568"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:07.642300" elapsed="0.000930"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.645562" 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-15T19:57:07.643391" elapsed="0.002197"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T19:57:07.645640" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:57:07.645807" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:07.641079" elapsed="0.004753"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.647350" 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-15T19:57:07.647094" elapsed="0.000301"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.647828" 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-15T19:57:07.647547" elapsed="0.000697"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.648651" 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-15T19:57:07.648406" elapsed="0.000288"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.649101" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:07.648862" elapsed="0.000282"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-04-15T19:57:07.650000" 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-15T19:57:07.649801" elapsed="0.000226"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-04-15T19:57:07.650351" 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-15T19:57:07.650180" elapsed="0.000197"/>
</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-15T19:57:07.650527" elapsed="0.000191"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:07.651142" 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-15T19:57:07.650895" elapsed="0.000290"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-04-15T19:57:07.651228" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:57:07.651381" 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-15T19:57:07.649382" elapsed="0.002023"/>
</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-15T19:57:07.656358" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.857997" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.260467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.263207" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.653682" elapsed="0.614550">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T19:57:07.651633" elapsed="0.616747">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.268772" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.268441" elapsed="0.000451"/>
</branch>
<status status="FAIL" start="2026-04-15T19:57:07.651458" elapsed="0.617470">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.269534" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:08.269768" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:57:08.269690" elapsed="0.000147"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:08.269660" elapsed="0.000216"/>
</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-15T19:57:08.270086" elapsed="0.000031"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T19:57:08.270181" elapsed="0.000023"/>
</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-15T19:57:07.646153" elapsed="0.624188">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.270530" elapsed="0.000024"/>
</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-15T19:57:07.248508" elapsed="1.022169">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.271173" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.270903" elapsed="0.000367"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:08.270839" elapsed="0.000463"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:08.271349" elapsed="0.000021"/>
</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-15T19:57:07.245687" elapsed="1.025802">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.232359" elapsed="1.039229">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.228976" elapsed="1.042697">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.228331" elapsed="1.043606">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:57:08.277555" 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-15T19:57:08.276872" elapsed="0.000724"/>
</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-15T19:57:08.320637" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.320240" elapsed="0.000426"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.321455" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.321198" elapsed="0.000324">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:08.321624" 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-15T19:57:08.320848" elapsed="0.000803"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.322232" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.321837" elapsed="0.000425"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.322568" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:08.322763" 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-15T19:57:08.322425" elapsed="0.000375"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.323216" 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-15T19:57:08.322964" elapsed="0.000340"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.324304" 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-15T19:57:08.324039" elapsed="0.000311"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.324817" 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-15T19:57:08.324513" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.325556" 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-15T19:57:08.325203" elapsed="0.000380"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-04-15T19:57:08.326602" 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-15T19:57:08.326163" elapsed="0.000465"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-04-15T19:57:08.326687" elapsed="0.000039"/>
</return>
<msg time="2026-04-15T19:57:08.326907" 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-15T19:57:08.325812" elapsed="0.001120"/>
</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-15T19:57:08.327090" elapsed="0.000304"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-04-15T19:57:08.325065" elapsed="0.002371"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-04-15T19:57:08.324894" elapsed="0.002578"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T19:57:08.327514" elapsed="0.000040"/>
</return>
<msg time="2026-04-15T19:57:08.327690" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T19:57:08.323690" elapsed="0.004030"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.323374" elapsed="0.004399"/>
</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-15T19:57:08.327953" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.327800" elapsed="0.000210"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.323355" elapsed="0.004676"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.328785" 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-15T19:57:08.328176" elapsed="0.000638"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:08.328864" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:08.319604" elapsed="0.009386"/>
</kw>
<msg time="2026-04-15T19:57:08.329047" 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-15T19:57:08.307338" elapsed="0.021756"/>
</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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:08.341277" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:08.353268" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:08.365242" 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-15T19:57:08.365481" 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-15T19:57:08.365663" 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-15T19:57:08.366054" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.365906" elapsed="0.000204"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:08.365891" elapsed="0.000243"/>
</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-15T19:57:08.366296" 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-15T19:57:08.366470" 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-15T19:57:08.366638" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T19:57:08.365861" elapsed="0.000832"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T19:57:08.365755" elapsed="0.000964"/>
</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-15T19:57:08.366915" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:08.366993" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T19:57:08.367115" 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-15T19:57:08.303191" elapsed="0.063950"/>
</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-15T19:57:08.377841" elapsed="0.000345"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.391254" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.390864" elapsed="0.000419"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.392032" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.391816" elapsed="0.000280">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:08.392191" 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-15T19:57:08.391449" elapsed="0.000766"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.392804" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.392381" elapsed="0.000451"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.393133" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:08.393262" 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-15T19:57:08.392996" elapsed="0.000292"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.393707" level="INFO">{
  "flow": [
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:08.393444" elapsed="0.000328"/>
</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-15T19:57:08.394136" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.393841" elapsed="0.000354"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.394687" 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-15T19:57:08.394369" elapsed="0.000358"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.394220" elapsed="0.000561"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.393823" elapsed="0.001014"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.395438" 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-15T19:57:08.394997" elapsed="0.000468"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:08.395514" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T19:57:08.395679" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:08.390198" elapsed="0.005506"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.408953" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.408540" elapsed="0.000442"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.409697" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.409489" elapsed="0.000292">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:08.409883" 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-15T19:57:08.409149" elapsed="0.000759"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.410466" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.410076" elapsed="0.000418"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.410842" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:08.410972" 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-15T19:57:08.410657" elapsed="0.000339"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.411401" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:08.411154" elapsed="0.000291"/>
</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-15T19:57:08.411827" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.411512" elapsed="0.000378"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.412360" 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-15T19:57:08.412064" elapsed="0.000323"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.411915" elapsed="0.000508"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.411493" elapsed="0.000951"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.413055" 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-15T19:57:08.412590" elapsed="0.000493"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:08.413133" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T19:57:08.413294" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:08.407912" elapsed="0.005407"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.426371" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.425978" elapsed="0.000421"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.427155" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.426937" elapsed="0.000319">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/data.item.json' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:08.427353" 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-15T19:57:08.426563" elapsed="0.000815"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.427953" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.427545" elapsed="0.000436"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:57:08.428290" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:57:08.428421" 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-15T19:57:08.428151" elapsed="0.000296"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.428871" 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-15T19:57:08.428605" elapsed="0.000316"/>
</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-15T19:57:08.429288" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.428990" elapsed="0.000358"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.429834" 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-15T19:57:08.429520" elapsed="0.000340"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.429372" elapsed="0.000525"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.428971" elapsed="0.000947"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.430710" 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-15T19:57:08.430069" elapsed="0.000686"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:08.430807" elapsed="0.000037"/>
</return>
<msg time="2026-04-15T19:57:08.430972" 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-sanity-only-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-sanity-only-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-sanity-only-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:57:08.425407" elapsed="0.005591"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.431421" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-15T19:57:08.431172" elapsed="0.000274"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.432008" 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-15T19:57:08.431613" elapsed="0.000421"/>
</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-15T19:57:08.432672" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.432434" elapsed="0.000312"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.432419" elapsed="0.000353"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.433290" 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-15T19:57:08.432915" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.434293" 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-15T19:57:08.433473" elapsed="0.000849"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.434483" elapsed="0.000228"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-04-15T19:57:08.432387" elapsed="0.002411"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.435249" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.434999" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.434983" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.436033" 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-15T19:57:08.435652" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.436872" 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-15T19:57:08.436234" 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-15T19:57:08.437065" elapsed="0.000197"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-04-15T19:57:08.434945" 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-15T19:57:08.437726" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.437486" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.437471" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.438512" 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-15T19:57:08.438139" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.439372" 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-15T19:57:08.438716" 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-15T19:57:08.439560" elapsed="0.000206"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-04-15T19:57:08.437440" elapsed="0.002366"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.440242" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.439998" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.439984" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.441017" 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-15T19:57:08.440641" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.441848" 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-15T19:57:08.441201" elapsed="0.000676"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.442034" elapsed="0.000186"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-04-15T19:57:08.439953" 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-15T19:57:08.442706" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.442453" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.442439" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.443484" 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-15T19:57:08.443119" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.444298" 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-15T19:57:08.443667" 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-15T19:57:08.444490" elapsed="0.000185"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-04-15T19:57:08.442408" 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-15T19:57:08.445148" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.444911" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.444897" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.445930" 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-15T19:57:08.445555" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.446780" 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-15T19:57:08.446113" 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-15T19:57:08.447007" elapsed="0.000190"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-04-15T19:57:08.444867" elapsed="0.002369"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.447664" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.447426" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.447411" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.448448" 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-15T19:57:08.448078" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.449267" 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-15T19:57:08.448632" 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-15T19:57:08.449464" elapsed="0.000190"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-04-15T19:57:08.447379" 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-15T19:57:08.450137" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.449898" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.449883" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.450956" 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-15T19:57:08.450544" elapsed="0.000439"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.451907" 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-15T19:57:08.451141" elapsed="0.000795"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.452096" elapsed="0.000188"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-04-15T19:57:08.449852" 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-15T19:57:08.452774" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.452519" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.452505" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.453539" 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-15T19:57:08.453172" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.454354" 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-15T19:57:08.453723" 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-15T19:57:08.454551" elapsed="0.000221"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-04-15T19:57:08.452472" elapsed="0.002340"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.455234" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.454995" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.454980" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.456050" 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-15T19:57:08.455646" elapsed="0.000431"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.456881" 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-15T19:57:08.456235" 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-15T19:57:08.457069" elapsed="0.000187"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-04-15T19:57:08.454949" 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-15T19:57:08.457744" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.457482" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.457468" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.458496" 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-15T19:57:08.458141" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.459381" 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-15T19:57:08.458762" 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-15T19:57:08.459578" elapsed="0.000205"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-04-15T19:57:08.457430" 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-15T19:57:08.460246" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.460005" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.459991" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.461045" 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-15T19:57:08.460654" elapsed="0.000417"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.461874" 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-15T19:57:08.461231" elapsed="0.000672"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.462063" elapsed="0.000187"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-04-15T19:57:08.459959" elapsed="0.002328"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.462752" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.462471" elapsed="0.000513"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.462456" elapsed="0.000553"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.463514" 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-15T19:57:08.463153" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.464339" 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-15T19:57:08.463711" 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-15T19:57:08.464526" elapsed="0.000194"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-04-15T19:57:08.462425" 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-15T19:57:08.465195" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.464957" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.464942" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.465984" 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-15T19:57:08.465598" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.466844" 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-15T19:57:08.466169" elapsed="0.000704"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.467032" elapsed="0.000198"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-04-15T19:57:08.464912" elapsed="0.002356"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.467695" elapsed="0.000210"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.467455" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.467441" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.468596" 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-15T19:57:08.468119" elapsed="0.000504"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.469420" 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-15T19:57:08.468805" 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-15T19:57:08.469606" elapsed="0.000214"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-04-15T19:57:08.467409" 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-15T19:57:08.470324" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.470042" elapsed="0.000512"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.470027" elapsed="0.000553"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.471144" 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-15T19:57:08.470778" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.471982" 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-15T19:57:08.471331" 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-15T19:57:08.472174" elapsed="0.000189"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-04-15T19:57:08.469996" elapsed="0.002406"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.472848" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.472584" elapsed="0.000495"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.472570" elapsed="0.000534"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.473613" 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-15T19:57:08.473254" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.474431" 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-15T19:57:08.473821" 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-15T19:57:08.474630" elapsed="0.000220"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-04-15T19:57:08.472539" 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-15T19:57:08.475308" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.475071" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.475056" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.476096" 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-15T19:57:08.475699" elapsed="0.000424"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.476917" 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-15T19:57:08.476280" 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-15T19:57:08.477104" elapsed="0.000185"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-04-15T19:57:08.475026" 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-15T19:57:08.477760" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.477508" elapsed="0.000494"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.477493" elapsed="0.000532"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.478531" 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-15T19:57:08.478175" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.479382" 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-15T19:57:08.478741" 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-15T19:57:08.479567" elapsed="0.000203"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-04-15T19:57:08.477463" 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-15T19:57:08.480251" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.480011" elapsed="0.000467"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.479989" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.481034" 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-15T19:57:08.480645" elapsed="0.000416"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.481850" 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-15T19:57:08.481218" 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-15T19:57:08.482087" elapsed="0.000190"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-04-15T19:57:08.479957" 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-15T19:57:08.482783" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.482497" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.482483" elapsed="0.000562"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.483548" 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-15T19:57:08.483191" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.484380" 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-15T19:57:08.483746" 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-15T19:57:08.484568" elapsed="0.000204"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-04-15T19:57:08.482452" 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-15T19:57:08.485249" elapsed="0.000299"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.485001" elapsed="0.000586"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.484985" elapsed="0.000628"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.486144" 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-15T19:57:08.485773" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.486971" 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-15T19:57:08.486329" 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-15T19:57:08.487171" elapsed="0.000194"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-04-15T19:57:08.484948" elapsed="0.002455"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.487837" elapsed="0.000198"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.487584" elapsed="0.000496"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.487569" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.488611" 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-15T19:57:08.488252" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.489447" 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-15T19:57:08.488810" 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-15T19:57:08.489634" elapsed="0.000206"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-04-15T19:57:08.487538" 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-15T19:57:08.490314" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.490069" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.490048" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.491106" 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-15T19:57:08.490723" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.491942" 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-15T19:57:08.491301" 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-15T19:57:08.492146" elapsed="0.000195"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-04-15T19:57:08.490014" elapsed="0.002366"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.492815" elapsed="0.000195"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.492561" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.492546" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.493595" 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-15T19:57:08.493229" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.494466" 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-15T19:57:08.493835" 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-15T19:57:08.494683" elapsed="0.000208"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-04-15T19:57:08.492514" 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-15T19:57:08.495357" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.495110" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.495095" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.496131" 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-15T19:57:08.495773" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.496950" 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-15T19:57:08.496323" 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-15T19:57:08.497137" elapsed="0.000195"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-04-15T19:57:08.495065" 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-15T19:57:08.497808" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.497553" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.497538" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.498609" 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-15T19:57:08.498219" elapsed="0.000420"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.499446" 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-15T19:57:08.498812" 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-15T19:57:08.499632" elapsed="0.000203"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-04-15T19:57:08.497507" elapsed="0.002366"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.500307" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.500052" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.500037" elapsed="0.000540"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.501098" 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-15T19:57:08.500726" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.501918" 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-15T19:57:08.501290" 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-15T19:57:08.502103" elapsed="0.000193"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-04-15T19:57:08.500006" elapsed="0.002328"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.502907" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.502522" elapsed="0.000615"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.502507" elapsed="0.000656"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.503676" 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-15T19:57:08.503317" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.504509" 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-15T19:57:08.503879" 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-15T19:57:08.504698" elapsed="0.000211"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-04-15T19:57:08.502470" elapsed="0.002478"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.505385" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.505129" elapsed="0.000522"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.505114" elapsed="0.000566"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.506206" 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-15T19:57:08.505846" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.507058" 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-15T19:57:08.506400" 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-15T19:57:08.507245" elapsed="0.000195"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-04-15T19:57:08.505084" 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-15T19:57:08.507915" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.507660" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.507645" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.508686" 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-15T19:57:08.508311" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.509516" 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-15T19:57:08.508889" 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-15T19:57:08.509703" elapsed="0.000202"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-04-15T19:57:08.507614" 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-15T19:57:08.510357" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.510121" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.510106" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.511154" 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-15T19:57:08.510795" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.511978" 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-15T19:57:08.511343" 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-15T19:57:08.512166" elapsed="0.000186"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-04-15T19:57:08.510076" elapsed="0.002313"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.512833" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.512578" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.512564" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.513590" 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-15T19:57:08.513227" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.514420" 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-15T19:57:08.513796" 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-15T19:57:08.514640" elapsed="0.000218"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-04-15T19:57:08.512533" 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-15T19:57:08.515316" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.515079" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.515064" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.516101" 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-15T19:57:08.515725" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.516935" 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-15T19:57:08.516283" 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-15T19:57:08.517122" elapsed="0.000196"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-04-15T19:57:08.515032" 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-15T19:57:08.517836" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.517583" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.517568" elapsed="0.000519"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.518635" 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-15T19:57:08.518231" elapsed="0.000432"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.519459" 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-15T19:57:08.518847" 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-15T19:57:08.519654" elapsed="0.000220"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-04-15T19:57:08.517535" 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-15T19:57:08.520444" elapsed="0.000196"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.520199" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.520080" elapsed="0.000624"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.521230" 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-15T19:57:08.520868" elapsed="0.000388"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.522061" 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-15T19:57:08.521415" 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-15T19:57:08.522249" elapsed="0.000188"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-04-15T19:57:08.520050" elapsed="0.002424"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.522947" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.522682" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.522666" elapsed="0.000532"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.523721" 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-15T19:57:08.523354" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.524532" 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-15T19:57:08.523927" 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-15T19:57:08.524750" elapsed="0.000192"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-04-15T19:57:08.522634" 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-15T19:57:08.525399" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.525161" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.525146" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.526178" 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-15T19:57:08.525819" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.527012" 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-15T19:57:08.526361" elapsed="0.000679"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.527200" elapsed="0.000185"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-04-15T19:57:08.525116" 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-15T19:57:08.527873" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.527609" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.527595" elapsed="0.000529"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.528628" 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-15T19:57:08.528267" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.529456" 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-15T19:57:08.528833" elapsed="0.000689"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.529687" elapsed="0.000212"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-04-15T19:57:08.527563" 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-15T19:57:08.530361" elapsed="0.000212"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.530118" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.530103" elapsed="0.000535"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.531174" 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-15T19:57:08.530809" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.531989" 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-15T19:57:08.531358" 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-15T19:57:08.532177" elapsed="0.000187"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-04-15T19:57:08.530073" 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-15T19:57:08.532849" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.532581" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.532567" elapsed="0.000541"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.533625" 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-15T19:57:08.533264" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.534453" 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-15T19:57:08.533831" 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-15T19:57:08.534652" elapsed="0.000211"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-04-15T19:57:08.532536" elapsed="0.002366"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.535320" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.535083" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.535068" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.536097" 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-15T19:57:08.535709" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.536924" 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-15T19:57:08.536286" 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-15T19:57:08.537110" elapsed="0.000191"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-04-15T19:57:08.535037" elapsed="0.002302"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.537909" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.537635" elapsed="0.000504"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.537510" elapsed="0.000654"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.538687" 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-15T19:57:08.538309" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.539526" 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-15T19:57:08.538904" 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-15T19:57:08.539711" elapsed="0.000214"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-04-15T19:57:08.537479" elapsed="0.002486"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.540390" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.540148" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.540133" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.541174" 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-15T19:57:08.540799" elapsed="0.000435"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.542036" 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-15T19:57:08.541397" 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-15T19:57:08.542223" elapsed="0.000187"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-04-15T19:57:08.540103" 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-15T19:57:08.542921" elapsed="0.000195"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.542660" elapsed="0.000496"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.542645" elapsed="0.000535"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.543681" 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-15T19:57:08.543324" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.544502" 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-15T19:57:08.543881" 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-15T19:57:08.544686" elapsed="0.000204"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-04-15T19:57:08.542613" 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-15T19:57:08.545354" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.545118" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.545103" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.546139" 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-15T19:57:08.545771" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.546989" 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-15T19:57:08.546323" 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-15T19:57:08.547179" elapsed="0.000185"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-04-15T19:57:08.545073" elapsed="0.002330"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.547838" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.547585" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.547569" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.548598" 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-15T19:57:08.548243" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.549443" 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-15T19:57:08.548795" elapsed="0.000676"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.549629" elapsed="0.000203"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-04-15T19:57:08.547539" elapsed="0.002331"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.550305" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.550065" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.550050" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.551102" 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-15T19:57:08.550720" elapsed="0.000409"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.551911" 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-15T19:57:08.551286" 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-15T19:57:08.552106" elapsed="0.000193"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-04-15T19:57:08.550015" 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-15T19:57:08.552815" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.552526" elapsed="0.000521"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.552511" elapsed="0.000568"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.553593" 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-15T19:57:08.553232" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.554429" 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-15T19:57:08.553794" 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-15T19:57:08.554643" elapsed="0.000205"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-04-15T19:57:08.552472" 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-15T19:57:08.555436" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.555183" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.555056" elapsed="0.000633"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.556222" 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-15T19:57:08.555852" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.557040" 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-15T19:57:08.556408" 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-15T19:57:08.557242" elapsed="0.000192"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-04-15T19:57:08.555025" elapsed="0.002447"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.557916" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.557657" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.557642" elapsed="0.000534"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.558698" 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-15T19:57:08.558323" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.559517" 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-15T19:57:08.558899" 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-15T19:57:08.559704" elapsed="0.000205"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-04-15T19:57:08.557610" 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-15T19:57:08.560383" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.560136" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.560122" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.561152" 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-15T19:57:08.560793" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.561982" 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-15T19:57:08.561347" 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-15T19:57:08.562165" elapsed="0.000194"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-04-15T19:57:08.560090" elapsed="0.002307"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.562876" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.562606" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.562592" elapsed="0.000535"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.563638" 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-15T19:57:08.563281" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.564460" 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-15T19:57:08.563836" 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-15T19:57:08.564683" elapsed="0.000203"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-04-15T19:57:08.562559" 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-15T19:57:08.565349" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.565106" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.565091" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.566118" 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-15T19:57:08.565762" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.566989" 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-15T19:57:08.566315" elapsed="0.000702"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.567177" elapsed="0.000193"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-04-15T19:57:08.565060" 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-15T19:57:08.567845" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.567589" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.567575" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.568620" 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-15T19:57:08.568244" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.569451" 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-15T19:57:08.568822" 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-15T19:57:08.569639" elapsed="0.000209"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-04-15T19:57:08.567544" elapsed="0.002342"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.570312" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.570074" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.570060" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.571112" 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-15T19:57:08.570747" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.571940" 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-15T19:57:08.571301" 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-15T19:57:08.572126" elapsed="0.000190"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-04-15T19:57:08.570028" 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-15T19:57:08.572910" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.572647" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.572528" elapsed="0.000633"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.573677" 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-15T19:57:08.573306" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.574526" 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-15T19:57:08.573878" elapsed="0.000679"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.574715" elapsed="0.000207"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-04-15T19:57:08.572496" elapsed="0.002464"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.575381" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.575141" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.575127" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.576172" 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-15T19:57:08.575803" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.577039" 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-15T19:57:08.576395" elapsed="0.000672"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.577226" elapsed="0.000187"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-04-15T19:57:08.575096" 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-15T19:57:08.577906" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.577646" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.577632" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.578704" 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-15T19:57:08.578307" elapsed="0.000439"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.579531" 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-15T19:57:08.578908" 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-15T19:57:08.579723" elapsed="0.000206"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-04-15T19:57:08.577600" elapsed="0.002367"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.580394" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.580150" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.580135" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.581170" 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-15T19:57:08.580813" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.581994" 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-15T19:57:08.581360" 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-15T19:57:08.582182" elapsed="0.000186"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-04-15T19:57:08.580104" 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-15T19:57:08.582874" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.582611" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.582596" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.583642" 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-15T19:57:08.583271" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.584475" 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-15T19:57:08.583852" 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-15T19:57:08.584668" elapsed="0.000235"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-04-15T19:57:08.582563" 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-15T19:57:08.585368" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.585122" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.585107" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.586153" 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-15T19:57:08.585790" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.586988" 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-15T19:57:08.586336" 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-15T19:57:08.587173" elapsed="0.000190"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-04-15T19:57:08.585076" 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-15T19:57:08.587849" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.587585" elapsed="0.000525"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.587564" elapsed="0.000574"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.588649" 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-15T19:57:08.588286" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.589463" 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-15T19:57:08.588853" 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-15T19:57:08.589656" elapsed="0.000212"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-04-15T19:57:08.587533" 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-15T19:57:08.590900" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.590621" elapsed="0.000513"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.590073" elapsed="0.001086"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.591678" 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-15T19:57:08.591306" elapsed="0.000406"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.592511" 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-15T19:57:08.591894" 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-15T19:57:08.592703" elapsed="0.000210"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-04-15T19:57:08.590042" elapsed="0.002910"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.593387" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.593134" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.593119" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.594172" 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-15T19:57:08.593808" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.595021" 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-15T19:57:08.594356" elapsed="0.000694"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.595211" elapsed="0.000190"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-04-15T19:57:08.593088" 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-15T19:57:08.595880" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.595619" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.595604" elapsed="0.000529"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.596638" 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-15T19:57:08.596277" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.597468" 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-15T19:57:08.596847" 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-15T19:57:08.597654" elapsed="0.000211"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-04-15T19:57:08.595573" elapsed="0.002331"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.598326" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.598087" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.598073" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.599124" 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-15T19:57:08.598756" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.599963" 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-15T19:57:08.599314" 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-15T19:57:08.600150" elapsed="0.000185"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-04-15T19:57:08.598041" elapsed="0.002366"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.600851" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.600590" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.600576" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.601605" 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-15T19:57:08.601247" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.602432" 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-15T19:57:08.601804" 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-15T19:57:08.602654" elapsed="0.000213"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-04-15T19:57:08.600544" 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-15T19:57:08.603330" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.603090" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.603075" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.604118" 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-15T19:57:08.603746" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.604938" 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-15T19:57:08.604302" 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-15T19:57:08.605124" elapsed="0.000193"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-04-15T19:57:08.603045" 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-15T19:57:08.605789" elapsed="0.000195"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.605535" elapsed="0.000488"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.605521" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.606561" 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-15T19:57:08.606191" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.607394" 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-15T19:57:08.606766" 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-15T19:57:08.607579" elapsed="0.000204"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-04-15T19:57:08.605490" 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-15T19:57:08.608386" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.608137" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.608010" elapsed="0.000638"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.609179" 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-15T19:57:08.608809" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.610014" 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-15T19:57:08.609369" 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-15T19:57:08.610204" elapsed="0.000193"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-04-15T19:57:08.607977" elapsed="0.002458"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.610967" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.610700" elapsed="0.000507"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.610685" elapsed="0.000547"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.611753" 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-15T19:57:08.611378" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.612592" 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-15T19:57:08.611946" elapsed="0.000722"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.612851" elapsed="0.000199"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-04-15T19:57:08.610653" elapsed="0.002437"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.613515" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.613275" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.613260" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.614303" 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-15T19:57:08.613932" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.615163" 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-15T19:57:08.614515" elapsed="0.000676"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.615351" elapsed="0.000189"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-04-15T19:57:08.613228" 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-15T19:57:08.616027" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.615788" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.615772" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.616812" 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-15T19:57:08.616437" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.617639" 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-15T19:57:08.617010" 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-15T19:57:08.617848" elapsed="0.000187"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-04-15T19:57:08.615714" 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-15T19:57:08.618527" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.618265" elapsed="0.000506"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.618251" elapsed="0.000546"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.619315" 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-15T19:57:08.618951" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.620132" 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-15T19:57:08.619497" 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-15T19:57:08.620323" elapsed="0.000188"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-04-15T19:57:08.618219" elapsed="0.002328"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.621009" elapsed="0.000195"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.620727" elapsed="0.000516"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.620713" elapsed="0.000555"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.621804" 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-15T19:57:08.621416" elapsed="0.000415"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.622617" 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-15T19:57:08.621988" 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-15T19:57:08.622819" elapsed="0.000186"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-04-15T19:57:08.620682" 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-15T19:57:08.623480" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.623239" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.623218" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.624277" 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-15T19:57:08.623899" elapsed="0.000442"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.625161" 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-15T19:57:08.624507" 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-15T19:57:08.625358" elapsed="0.000190"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-04-15T19:57:08.623182" elapsed="0.002405"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.626146" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.625896" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.625773" elapsed="0.000638"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.626965" 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-15T19:57:08.626586" elapsed="0.000406"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.627791" 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-15T19:57:08.627151" 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-15T19:57:08.627980" elapsed="0.000188"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-04-15T19:57:08.625725" elapsed="0.002481"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.628646" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.628405" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.628390" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.629435" 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-15T19:57:08.629060" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.630248" 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-15T19:57:08.629620" 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-15T19:57:08.630464" elapsed="0.000190"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-04-15T19:57:08.628358" elapsed="0.002334"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.631131" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.630893" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.630878" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.631908" 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-15T19:57:08.631534" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.632721" 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-15T19:57:08.632092" 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-15T19:57:08.632926" elapsed="0.000186"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-04-15T19:57:08.630846" 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-15T19:57:08.633576" elapsed="0.000204"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.633329" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.633315" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.634363" 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-15T19:57:08.633993" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.635201" 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-15T19:57:08.634569" 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-15T19:57:08.635398" elapsed="0.000192"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-04-15T19:57:08.633285" 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-15T19:57:08.636101" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.635824" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.635810" elapsed="0.000548"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.636893" 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-15T19:57:08.636513" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.637712" 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-15T19:57:08.637079" 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-15T19:57:08.637917" elapsed="0.000188"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-04-15T19:57:08.635778" elapsed="0.002366"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.638604" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.638326" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.638312" elapsed="0.000562"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.639376" 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-15T19:57:08.639019" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.640195" 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-15T19:57:08.639573" 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-15T19:57:08.640386" elapsed="0.000200"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-04-15T19:57:08.638281" 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-15T19:57:08.641076" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.640836" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.640812" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.641854" 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-15T19:57:08.641474" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.642678" 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-15T19:57:08.642037" 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-15T19:57:08.642882" elapsed="0.000185"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-04-15T19:57:08.640780" 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-15T19:57:08.643659" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.643405" elapsed="0.000501"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.643283" elapsed="0.000648"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.644442" 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-15T19:57:08.644082" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.645265" 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-15T19:57:08.644634" 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-15T19:57:08.645451" elapsed="0.000200"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-04-15T19:57:08.643250" elapsed="0.002439"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.646131" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.645890" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.645875" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.646922" 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-15T19:57:08.646540" elapsed="0.000409"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.647749" 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-15T19:57:08.647107" 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-15T19:57:08.647973" elapsed="0.000188"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-04-15T19:57:08.645844" elapsed="0.002355"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.648629" elapsed="0.000211"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.648382" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.648367" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.649404" 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-15T19:57:08.649047" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.650237" 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-15T19:57:08.649594" elapsed="0.000672"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.650454" elapsed="0.000193"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-04-15T19:57:08.648336" elapsed="0.002352"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.651127" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.650889" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.650874" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.651926" 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-15T19:57:08.651539" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.652725" 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-15T19:57:08.652111" 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-15T19:57:08.652932" elapsed="0.000185"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-04-15T19:57:08.650843" elapsed="0.002312"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.653588" elapsed="0.000215"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.653343" elapsed="0.000500"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.653328" elapsed="0.000540"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.654377" 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-15T19:57:08.654020" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.655217" 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-15T19:57:08.654578" 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-15T19:57:08.655402" elapsed="0.000187"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-04-15T19:57:08.653295" 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-15T19:57:08.656084" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.655840" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.655825" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.656870" 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-15T19:57:08.656483" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.657671" 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-15T19:57:08.657054" 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-15T19:57:08.657879" elapsed="0.000187"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-04-15T19:57:08.655792" elapsed="0.002312"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.658544" elapsed="0.000220"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.658284" elapsed="0.000524"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.658270" elapsed="0.000562"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.659341" 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-15T19:57:08.658984" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.660197" 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-15T19:57:08.659562" 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-15T19:57:08.660384" elapsed="0.000186"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-04-15T19:57:08.658239" 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-15T19:57:08.661170" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.660921" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.660798" elapsed="0.000630"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.661960" 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-15T19:57:08.661575" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.662818" 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-15T19:57:08.662146" 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-15T19:57:08.663014" elapsed="0.000188"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-04-15T19:57:08.660762" 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-15T19:57:08.663666" elapsed="0.000215"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.663426" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.663411" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.664454" 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-15T19:57:08.664095" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.665296" 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-15T19:57:08.664638" elapsed="0.000691"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.665490" elapsed="0.000190"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-04-15T19:57:08.663381" elapsed="0.002338"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.666172" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.665929" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.665913" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.666980" 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-15T19:57:08.666586" elapsed="0.000421"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.667799" 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-15T19:57:08.667165" 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-15T19:57:08.667999" elapsed="0.000191"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-04-15T19:57:08.665876" elapsed="0.002352"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.668644" elapsed="0.000263"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.668407" elapsed="0.000548"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.668393" elapsed="0.000588"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.669503" 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-15T19:57:08.669135" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.670331" 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-15T19:57:08.669687" 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-15T19:57:08.670533" elapsed="0.000186"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-04-15T19:57:08.668362" 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-15T19:57:08.671204" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.670960" elapsed="0.000501"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.670940" elapsed="0.000549"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.672029" 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-15T19:57:08.671637" elapsed="0.000420"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.672851" 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-15T19:57:08.672216" 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-15T19:57:08.673055" elapsed="0.000189"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-04-15T19:57:08.670910" 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-15T19:57:08.673705" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.673465" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.673451" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.674509" 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-15T19:57:08.674124" elapsed="0.000412"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.675338" 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-15T19:57:08.674693" 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-15T19:57:08.675525" elapsed="0.000186"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-04-15T19:57:08.673419" 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-15T19:57:08.676212" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.675953" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.675939" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.676981" 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-15T19:57:08.676607" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.677806" 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-15T19:57:08.677175" 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-15T19:57:08.677998" elapsed="0.000202"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-04-15T19:57:08.675908" elapsed="0.002331"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.678824" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.678559" elapsed="0.000495"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.678439" elapsed="0.000641"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.679594" 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-15T19:57:08.679233" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.680424" 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-15T19:57:08.679794" 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-15T19:57:08.680608" elapsed="0.000206"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-04-15T19:57:08.678405" elapsed="0.002447"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.681286" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.681033" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.681018" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.682067" 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-15T19:57:08.681693" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.682911" 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-15T19:57:08.682261" elapsed="0.000679"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-15T19:57:08.683098" elapsed="0.000194"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-04-15T19:57:08.680987" elapsed="0.002376"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-04-15T19:57:08.432093" elapsed="0.251302"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.684705" 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-15T19:57:08.683551" elapsed="0.001196"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:57:08.684809" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T19:57:08.684966" 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-15T19:57:08.376958" elapsed="0.308035"/>
</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-15T19:57:08.686315" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.686043" elapsed="0.000365">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/openflowplugin/add-flow/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T19:57:08.686505" 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-15T19:57:08.685686" elapsed="0.000843"/>
</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-15T19:57:08.686866" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:08.686601" elapsed="0.000324"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.687457" 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-15T19:57:08.687147" elapsed="0.000336"/>
</kw>
<status status="PASS" start="2026-04-15T19:57:08.686949" elapsed="0.000570"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:08.686583" elapsed="0.000957"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.689908" 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-15T19:57:08.687691" elapsed="0.002244"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T19:57:08.689987" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T19:57:08.690142" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:57:08.685353" elapsed="0.004814"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.691749" 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-15T19:57:08.691483" elapsed="0.000314"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.692192" 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-15T19:57:08.691950" elapsed="0.001003"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.693378" 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-15T19:57:08.693114" elapsed="0.000311"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.693843" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:08.693579" elapsed="0.000308"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-04-15T19:57:08.694760" 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-15T19:57:08.694537" elapsed="0.000251"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-04-15T19:57:08.695120" 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-15T19:57:08.694945" elapsed="0.000200"/>
</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-15T19:57:08.695299" elapsed="0.000198"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:08.695931" 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-15T19:57:08.695661" elapsed="0.000314"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-04-15T19:57:08.696019" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:57:08.696180" 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-15T19:57:08.694089" elapsed="0.002116"/>
</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-15T19:57:08.701198" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.902689" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:09.304705" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:09.307116" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:08.698526" elapsed="0.613010">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T19:57:08.696433" elapsed="0.615238">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:09.312010" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:09.311726" elapsed="0.000383"/>
</branch>
<status status="FAIL" start="2026-04-15T19:57:08.696260" elapsed="0.615884">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:09.312755" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:09.312960" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:57:09.312906" elapsed="0.000113"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:09.312881" elapsed="0.000168"/>
</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-15T19:57:09.313275" elapsed="0.000033"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T19:57:09.313374" elapsed="0.000021"/>
</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-15T19:57:08.690524" elapsed="0.623003">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:09.313723" elapsed="0.000043"/>
</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-15T19:57:08.292498" elapsed="1.021391">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:09.314343" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:09.314052" elapsed="0.000411"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:09.314027" elapsed="0.000472"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T19:57:09.314545" elapsed="0.000021"/>
</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-15T19:57:08.289020" elapsed="1.025662">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:08.276624" elapsed="1.038180">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:08.273394" elapsed="1.041494">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:57:08.272616" elapsed="1.042493">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-s1-t4" name="Start Mininet Linear" line="57">
<kw name="Start Mininet Linear" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:09.317379" 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-15T19:57:09.317022" elapsed="0.000425"/>
</kw>
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:09.322071" 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-15T19:57:09.321750" elapsed="0.000388"/>
</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-15T19:57:09.324854" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:09.324519" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:09.324500" elapsed="0.000438"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:57:09.325275" 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-15T19:57:09.325385" 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-15T19:57:09.325091" elapsed="0.000320"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:09.326001" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.133" 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-15T19:57:09.325575" elapsed="0.000474"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:57:09.326600" level="INFO">${conn_id} = 16</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-15T19:57:09.326217" elapsed="0.000410"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:57:09.327789" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:57:09.327879" 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-15T19:57:09.327321" elapsed="0.000582"/>
</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-15T19:57:09.328068" elapsed="0.000339"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:57:09.329298" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:57:09.658369" 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 Wed Apr 15 19:56:32 UTC 2026

  System load:  0.02               Processes:             111
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:56:34 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:57:09.328977" elapsed="0.329485"/>
</kw>
<msg time="2026-04-15T19:57:09.658530" 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-15T19:57:09.328590" elapsed="0.330010"/>
</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-15T19:57:09.326915" elapsed="0.331780"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:57:09.659126" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-15T19:57:10.805630" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:57:10.806065" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:57:10.806168" 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-15T19:57:09.658915" elapsed="1.147308"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:57:10.806726" elapsed="0.000662"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:10.808577" 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-15T19:57:10.807899" elapsed="0.000801"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:57:10.809216" elapsed="0.000037"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:57:10.808915" elapsed="0.000409"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:10.808861" elapsed="0.000515"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:57:10.809779" elapsed="0.000072"/>
</return>
<status status="PASS" start="2026-04-15T19:57:10.809495" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:10.809462" elapsed="0.000517"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:57:10.810054" 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-15T19:57:10.815237" elapsed="0.000465"/>
</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-15T19:57:10.815966" elapsed="0.000233"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:57:10.816408" elapsed="0.000137"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:57:10.810801" elapsed="0.005819"/>
</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-15T19:57:09.323955" elapsed="1.492816"/>
</kw>
<msg time="2026-04-15T19:57:10.816851" 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-15T19:57:09.323359" elapsed="1.493650"/>
</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-15T19:57:09.322848" elapsed="1.494281"/>
</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-15T19:57:10.820119" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:10.819678" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:10.819652" elapsed="0.000581"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:57:10.820645" 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-15T19:57:10.820814" 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-15T19:57:10.820450" elapsed="0.000403"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:10.821601" 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.133" 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-15T19:57:10.821066" elapsed="0.000601"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:57:10.822428" level="INFO">${conn_id} = 18</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-15T19:57:10.821910" elapsed="0.000555"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:57:10.823801" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:57:10.823909" 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-15T19:57:10.823360" elapsed="0.000581"/>
</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-15T19:57:10.824215" elapsed="0.000463"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:57:10.825559" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:57:11.142084" 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 Wed Apr 15 19:56:32 UTC 2026

  System load:  0.02               Processes:             111
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:57:09 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:57:10.825237" elapsed="0.317001"/>
</kw>
<msg time="2026-04-15T19:57:11.142330" 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-15T19:57:10.824868" elapsed="0.317546"/>
</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-15T19:57:10.822792" elapsed="0.319741"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:57:11.143070" 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-15T19:57:11.176255" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-15T19:57:11.176531" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:57:11.176631" 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-15T19:57:11.142809" elapsed="0.033872"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:57:11.177099" elapsed="0.000470"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:11.178697" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:11.178073" elapsed="0.000744"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:57:11.179284" elapsed="0.000035"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:57:11.178992" elapsed="0.000398"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:11.178943" elapsed="0.000498"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:57:11.179832" elapsed="0.000059"/>
</return>
<status status="PASS" start="2026-04-15T19:57:11.179557" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:11.179524" elapsed="0.000493"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:57:11.180208" 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-15T19:57:11.185633" elapsed="0.000510"/>
</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-15T19:57:11.186389" elapsed="0.000233"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:57:11.186865" elapsed="0.000142"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:57:11.180963" elapsed="0.006121"/>
</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-15T19:57:10.818924" elapsed="0.368295"/>
</kw>
<msg time="2026-04-15T19:57:11.187299" 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-15T19:57:10.818111" elapsed="0.369262"/>
</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-15T19:57:10.817375" elapsed="0.370116"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-04-15T19:57:09.322467" elapsed="1.865109"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:57:11.194962" level="INFO">${tools_connection} = 20</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-15T19:57:11.194400" elapsed="0.000601"/>
</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-15T19:57:11.197229" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:57:11.197305" 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-15T19:57:11.196938" elapsed="0.000390"/>
</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-15T19:57:11.197487" elapsed="0.000343"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:57:11.198698" level="INFO">Logging into '10.30.171.133:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:57:11.564199" 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 Wed Apr 15 19:56:32 UTC 2026

  System load:  0.02               Processes:             111
  Usage of /:   19.6% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.133
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

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: Wed Apr 15 19:57:11 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:57:11.198374" elapsed="0.365909"/>
</kw>
<msg time="2026-04-15T19:57:11.564348" 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-15T19:57:11.198001" elapsed="0.366406"/>
</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-15T19:57:11.196430" elapsed="0.368064"/>
</kw>
<msg time="2026-04-15T19:57:11.564545" 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-15T19:57:11.195894" elapsed="0.368696"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-15T19:57:11.195268" elapsed="0.369398"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-04-15T19:57:11.564707" elapsed="0.000045"/>
</return>
<msg time="2026-04-15T19:57:11.564894" level="INFO">${mininet_conn_id} = 20</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-15T19:57:11.193655" elapsed="0.371264"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-15T19:57:11.565510" level="INFO">${mininet_conn_id} = 20</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-15T19:57:11.565138" elapsed="0.000414"/>
</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-15T19:57:11.567811" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:11.565624" elapsed="0.002295"/>
</branch>
<status status="PASS" start="2026-04-15T19:57:11.565604" elapsed="0.002342"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:11.568411" level="INFO">Start mininet --topo linear,3 to 10.30.170.185</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:57:11.568119" elapsed="0.000337"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:57:11.570826" level="INFO">sudo mn --controller 'remote,ip=10.30.170.185,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-15T19:57:11.568614" elapsed="0.002267"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:57:11.824964" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.185: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-15T19:57:11.571042" elapsed="0.254094"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:57:11.825951" 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-15T19:57:11.825535" elapsed="0.000462"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:57:11.827228" 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-15T19:57:11.826180" elapsed="0.001103"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:57:11.843312" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s3
        Controller "ptcp:6656"
        Controller "tcp:10.30.170.185:6633"
        fail_mode: secure
        Port s3
            Interface s3
                type: internal
        Port s3-eth1
            Interface s3-eth1
        Port s3-eth2
            Interface s3-eth2
    Bridge s2
        Controller "tcp:10.30.170.185:6633"
        Controller "ptcp:6655"
        fail_mode: secure
        Port s2-eth1
            Interface s2-eth1
        Port s2
            Interface s2
                type: internal
        Port s2-eth2
            Interface s2-eth2
        Port s2-eth3
            Interface s2-eth3
    Bridge s1
        Controller "tcp:10.30.170.185:6633"
        Controller "ptcp:6654"
        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-15T19:57:11.827440" elapsed="0.015940"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-04-15T19:57:11.843435" elapsed="0.000050"/>
</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-15T19:57:09.317910" elapsed="2.525717"/>
</kw>
<arg>${SWITCHES}</arg>
<doc>Start mininet linear topology with 3 nodes.</doc>
<status status="PASS" start="2026-04-15T19:57:09.316178" elapsed="2.527524"/>
</kw>
<doc>Start Mininet Linear with 3 switches.</doc>
<status status="PASS" start="2026-04-15T19:57:09.315453" elapsed="2.528397"/>
</test>
<test id="s1-s4-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-15T19:57:11.848431" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:12.049625" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:12.451570" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:12.453705" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:11.845727" elapsed="0.613540">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:12.459804" 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-15T19:57:12.460475" 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-15T19:57:12.460798" 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-15T19:57:12.461072" 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-15T19:57:12.461653" 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-15T19:57:12.461960" 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-15T19:57:12.462302" 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-15T19:57:12.462700" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:12.462438" elapsed="0.000358"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:12.462410" elapsed="0.000422"/>
</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-15T19:57:12.463149" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:12.462907" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:12.462886" 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-15T19:57:12.463606" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:12.463339" elapsed="0.000344"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:12.463314" elapsed="0.000401"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:12.460203" elapsed="0.003563"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:12.459926" elapsed="0.003880"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:11.845357" elapsed="0.618591">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:13.470772" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:13.672243" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:14.074152" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:14.075996" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:13.466328" elapsed="0.614888">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:14.081815" 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-15T19:57:14.082844" 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-15T19:57:14.083308" 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-15T19:57:14.083774" 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-15T19:57:14.084246" 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-15T19:57:14.084688" elapsed="0.000076"/>
</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-15T19:57:14.085232" elapsed="0.000056"/>
</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-15T19:57:14.085831" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:14.085455" elapsed="0.000431"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:14.085414" elapsed="0.000501"/>
</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-15T19:57:14.086141" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:14.085969" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:14.085954" 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-15T19:57:14.086453" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:14.086285" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:14.086265" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:14.082434" elapsed="0.004118"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:14.081997" elapsed="0.004639"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:13.465308" elapsed="0.621455">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:15.093855" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:15.298254" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:15.700353" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:15.702406" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:15.088892" elapsed="0.618488">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:15.707961" 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-15T19:57:15.708964" 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-15T19:57:15.709417" 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-15T19:57:15.709885" 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-15T19:57:15.710325" 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-15T19:57:15.710785" 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-15T19:57:15.711222" 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-15T19:57:15.711839" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:15.711421" elapsed="0.000583"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:15.711382" elapsed="0.000675"/>
</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-15T19:57:15.712580" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:15.712176" elapsed="0.000466"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:15.712142" elapsed="0.000523"/>
</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-15T19:57:15.712901" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:15.712716" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:15.712701" elapsed="0.000276"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:15.708562" elapsed="0.004438"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:15.708130" elapsed="0.004895"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:15.087970" elapsed="0.625153">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:16.719302" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:16.921156" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:17.323300" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:17.325379" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:16.714976" elapsed="0.615505">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:17.331119" 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-15T19:57:17.331960" 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-15T19:57:17.332240" 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-15T19:57:17.332525" 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-15T19:57:17.332855" 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-15T19:57:17.333125" 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-15T19:57:17.333392" 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-15T19:57:17.333777" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:17.333520" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:17.333494" elapsed="0.000395"/>
</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-15T19:57:17.334198" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:17.333963" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:17.333942" 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-15T19:57:17.334607" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:17.334375" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:17.334354" elapsed="0.000359"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:17.331708" elapsed="0.003078"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:17.331292" elapsed="0.003530"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:16.714172" elapsed="0.620783">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:18.342618" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:18.544232" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:18.946165" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:18.948145" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:18.337941" elapsed="0.615279">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:18.953876" 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-15T19:57:18.954893" 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-15T19:57:18.955337" 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-15T19:57:18.955795" 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-15T19:57:18.956339" 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-15T19:57:18.956807" 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-15T19:57:18.957249" 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-15T19:57:18.957919" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:18.957457" elapsed="0.000589"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:18.957415" elapsed="0.000687"/>
</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-15T19:57:18.958611" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:18.958220" elapsed="0.000504"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:18.958186" elapsed="0.000579"/>
</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-15T19:57:18.958985" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:18.958817" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:18.958802" elapsed="0.000259"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:18.954492" elapsed="0.004592"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:18.954060" elapsed="0.005051"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:18.336972" elapsed="0.622250">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:19.965963" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:20.167266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:20.569217" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:20.571812" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:19.961426" elapsed="0.615492">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:20.577492" 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-15T19:57:20.578497" 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-15T19:57:20.578973" 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-15T19:57:20.579413" 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-15T19:57:20.579879" 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-15T19:57:20.580318" 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-15T19:57:20.580820" 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-15T19:57:20.581418" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:20.581030" elapsed="0.000509"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:20.580989" elapsed="0.000611"/>
</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-15T19:57:20.581936" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:20.581758" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:20.581697" elapsed="0.000317"/>
</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-15T19:57:20.582291" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:20.582119" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:20.582102" elapsed="0.000267"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:20.578121" elapsed="0.004270"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:20.577669" elapsed="0.004749"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:19.960472" elapsed="0.622052">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:21.589159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:21.790785" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:22.192692" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:22.194632" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:21.584810" elapsed="0.615091">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:22.200579" 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-15T19:57:22.201264" 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-15T19:57:22.201549" 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-15T19:57:22.201843" 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-15T19:57:22.202119" 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-15T19:57:22.202386" 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-15T19:57:22.202680" 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-15T19:57:22.203079" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:22.202834" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:22.202805" 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-15T19:57:22.203493" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:22.203262" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:22.203241" 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-15T19:57:22.203916" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:22.203667" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:22.203646" elapsed="0.000393"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:22.201025" elapsed="0.003044"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:22.200711" elapsed="0.003396"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:21.583794" elapsed="0.620476">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:23.211641" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:23.413360" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:23.815418" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:23.817307" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:23.206498" elapsed="0.615740">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:23.822832" 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-15T19:57:23.823905" 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-15T19:57:23.824134" 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-15T19:57:23.824329" 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-15T19:57:23.824531" 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-15T19:57:23.824727" 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-15T19:57:23.824939" 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-15T19:57:23.825207" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:23.825034" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:23.825015" 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-15T19:57:23.825507" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:23.825338" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:23.825323" 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-15T19:57:23.825815" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:23.825633" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:23.825619" elapsed="0.000278"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:23.823474" elapsed="0.002445"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:23.823006" elapsed="0.002940"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:23.205598" elapsed="0.620452">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:24.832663" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:25.034256" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:25.436094" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:25.437430" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:24.828257" elapsed="0.611845">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:25.440425" 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-15T19:57:25.440911" 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-15T19:57:25.441112" 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-15T19:57:25.441381" 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-15T19:57:25.441580" 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-15T19:57:25.441794" 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-15T19:57:25.442002" 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-15T19:57:25.442278" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:25.442102" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:25.442082" elapsed="0.000276"/>
</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-15T19:57:25.442590" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:25.442410" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:25.442396" elapsed="0.000277"/>
</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-15T19:57:25.442912" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:25.442725" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:25.442710" elapsed="0.000279"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:25.440724" elapsed="0.002287"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:25.440518" elapsed="0.002521"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:24.827305" elapsed="0.615841">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:26.450101" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:26.652185" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:27.054183" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:27.056122" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:26.445402" elapsed="0.616359">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:27.062391" 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-15T19:57:27.063205" 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-15T19:57:27.063499" 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-15T19:57:27.063798" 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-15T19:57:27.064076" 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-15T19:57:27.064383" 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-15T19:57:27.064670" 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-15T19:57:27.065076" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:27.064829" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:27.064801" 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-15T19:57:27.065691" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:27.065284" elapsed="0.000545"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:27.065257" elapsed="0.000607"/>
</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-15T19:57:27.066211" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:27.065945" elapsed="0.000352"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:27.065922" elapsed="0.000432"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:27.062958" elapsed="0.003433"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:27.062583" elapsed="0.003847"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:26.444448" elapsed="0.622132">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:28.074074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:28.275429" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:28.677577" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:28.679870" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:28.069552" elapsed="0.614444">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:28.684463" 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-15T19:57:28.685175" 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-15T19:57:28.685456" 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-15T19:57:28.685725" 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-15T19:57:28.686017" 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-15T19:57:28.686293" 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-15T19:57:28.686572" 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-15T19:57:28.686973" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:28.686707" elapsed="0.000342"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:28.686680" elapsed="0.000406"/>
</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-15T19:57:28.687392" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:28.687158" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:28.687138" 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-15T19:57:28.687822" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:28.687569" elapsed="0.000329"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:28.687549" elapsed="0.000381"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:28.684932" elapsed="0.003029"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:28.684594" elapsed="0.003405"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:28.067976" elapsed="0.620169">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:29.693202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:29.894866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:30.296912" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:30.299186" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:29.689805" elapsed="0.615319">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:30.305567" 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-15T19:57:30.306259" 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-15T19:57:30.306543" 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-15T19:57:30.306853" 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-15T19:57:30.307133" 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-15T19:57:30.307407" 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-15T19:57:30.307696" elapsed="0.000055"/>
</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-15T19:57:30.308129" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:30.307862" elapsed="0.000347"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:30.307835" elapsed="0.000410"/>
</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-15T19:57:30.308556" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:30.308320" elapsed="0.000313"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:30.308299" 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-15T19:57:30.309018" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:30.308777" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:30.308753" elapsed="0.000375"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:30.306017" elapsed="0.003142"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:30.305701" elapsed="0.003496"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:29.689128" elapsed="0.620214">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:31.316662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:31.518349" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:31.920263" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:31.922342" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:31.311681" elapsed="0.615859">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:31.928184" 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-15T19:57:31.929310" 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-15T19:57:31.929785" 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-15T19:57:31.930230" 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-15T19:57:31.930674" 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-15T19:57:31.931143" 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-15T19:57:31.931602" 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-15T19:57:31.932226" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:31.931839" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:31.931795" elapsed="0.000607"/>
</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-15T19:57:31.932921" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:31.932516" elapsed="0.000525"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:31.932483" elapsed="0.000609"/>
</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-15T19:57:31.933579" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:31.933205" elapsed="0.000491"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:31.933173" elapsed="0.000603"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:31.928930" elapsed="0.004898"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:31.928454" elapsed="0.005433"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:31.310673" elapsed="0.623435">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:32.941338" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:33.143282" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:33.545318" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:33.547697" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:32.936874" elapsed="0.616028">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:33.553487" 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-15T19:57:33.554488" elapsed="0.000097"/>
</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-15T19:57:33.555036" elapsed="0.000054"/>
</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-15T19:57:33.555292" 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-15T19:57:33.555492" 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-15T19:57:33.555685" 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-15T19:57:33.555895" 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-15T19:57:33.556168" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:33.555994" elapsed="0.000280"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:33.555974" elapsed="0.000326"/>
</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-15T19:57:33.556524" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:33.556353" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:33.556337" 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-15T19:57:33.556835" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:33.556652" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:33.556637" elapsed="0.000276"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:33.554112" elapsed="0.002823"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:33.553663" elapsed="0.003299"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:32.935536" elapsed="0.621532">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:34.563947" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:34.765361" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:35.167322" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:35.169326" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:34.559376" elapsed="0.615124">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:35.174909" 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-15T19:57:35.175534" 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-15T19:57:35.175836" 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-15T19:57:35.176113" 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-15T19:57:35.176382" 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-15T19:57:35.176650" 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-15T19:57:35.176948" 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-15T19:57:35.177325" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:35.177081" elapsed="0.000318"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:35.177054" elapsed="0.000383"/>
</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-15T19:57:35.177773" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:35.177512" elapsed="0.000341"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:35.177491" elapsed="0.000394"/>
</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-15T19:57:35.178187" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:35.177955" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:35.177934" elapsed="0.000366"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:35.175297" elapsed="0.003034"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:35.175023" elapsed="0.003345"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:34.558416" elapsed="0.620094">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:36.184996" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:36.386779" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:36.788782" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:36.790780" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:36.180558" elapsed="0.615399">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:36.796487" 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-15T19:57:36.797528" 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-15T19:57:36.798015" 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-15T19:57:36.798240" 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-15T19:57:36.798443" 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-15T19:57:36.798635" 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-15T19:57:36.798850" 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-15T19:57:36.799119" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:36.798945" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:36.798926" elapsed="0.000276"/>
</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-15T19:57:36.799424" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:36.799255" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:36.799240" 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-15T19:57:36.799716" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:36.799550" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:36.799535" elapsed="0.000277"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:36.797155" elapsed="0.002680"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:36.796667" elapsed="0.003195"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:36.179692" elapsed="0.620275">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:37.807143" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:38.009155" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:38.411126" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:38.413029" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:37.802766" elapsed="0.615053">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:38.418243" 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-15T19:57:38.418869" 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-15T19:57:38.419148" 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-15T19:57:38.419432" 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-15T19:57:38.419769" 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-15T19:57:38.420046" 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-15T19:57:38.420333" 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-15T19:57:38.420715" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:38.420463" elapsed="0.000349"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:38.420437" 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-15T19:57:38.421157" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:38.420919" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:38.420898" elapsed="0.000368"/>
</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-15T19:57:38.421572" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:38.421337" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:38.421317" elapsed="0.000362"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:38.418613" elapsed="0.003097"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:38.418353" elapsed="0.003411"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:37.801312" elapsed="0.620591">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:39.428332" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:39.630111" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:40.032051" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:40.033900" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:39.423855" elapsed="0.615587">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:40.039973" 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-15T19:57:40.040947" 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-15T19:57:40.041392" 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-15T19:57:40.041850" 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-15T19:57:40.042282" 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-15T19:57:40.042757" 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-15T19:57:40.043284" elapsed="0.000046"/>
</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-15T19:57:40.043959" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:40.043536" elapsed="0.000545"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:40.043495" elapsed="0.000646"/>
</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-15T19:57:40.044442" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:40.044258" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:40.044236" elapsed="0.000282"/>
</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-15T19:57:40.044746" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:40.044568" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:40.044553" elapsed="0.000270"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:40.040552" elapsed="0.004293"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:40.040141" elapsed="0.004730"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:39.423019" elapsed="0.621945">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:41.052097" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:41.253934" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:41.656082" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:41.657905" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:41.047389" elapsed="0.615709">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:41.663556" 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-15T19:57:41.664209" 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-15T19:57:41.664487" 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-15T19:57:41.664783" 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-15T19:57:41.665054" 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-15T19:57:41.665322" 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-15T19:57:41.665600" 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-15T19:57:41.665998" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:41.665752" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:41.665706" 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-15T19:57:41.666426" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:41.666189" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:41.666168" elapsed="0.000365"/>
</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-15T19:57:41.666886" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:41.666618" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:41.666584" elapsed="0.000412"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:41.663970" elapsed="0.003057"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:41.663676" elapsed="0.003452"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:41.046337" elapsed="0.620936">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:42.675317" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:42.877041" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.279020" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.281234" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:42.670301" elapsed="0.616019">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:43.287002" 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-15T19:57:43.288045" 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-15T19:57:43.288488" 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-15T19:57:43.288948" 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-15T19:57:43.289423" 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-15T19:57:43.289931" 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-15T19:57:43.290394" 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-15T19:57:43.290792" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:43.290588" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:43.290562" 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-15T19:57:43.291099" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:43.290932" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:43.290917" 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-15T19:57:43.291392" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:57:43.291225" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:57:43.291210" elapsed="0.000258"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:57:43.287643" elapsed="0.003847"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:57:43.287195" elapsed="0.004324"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:57:42.668698" elapsed="0.622939">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:57:43.291763" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:11.844532" elapsed="31.447335">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:11.844076" elapsed="31.447997">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:57:43.296390" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.497690" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.899830" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.905469" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:43.294043" elapsed="0.616376">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:43.910676" elapsed="0.000026"/>
</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-15T19:57:43.910901" 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-15T19:57:43.911113" elapsed="0.000021"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:43.293657" elapsed="0.617575">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:44.917711" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:45.119365" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:45.521688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:45.523643" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:44.913084" elapsed="0.615530">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:45.529270" 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-15T19:57:45.529626" elapsed="0.000029"/>
</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-15T19:57:45.529931" elapsed="0.000029"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:44.912136" elapsed="0.617969">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:46.536638" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:46.738255" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:47.140189" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:47.142364" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:46.531892" elapsed="0.614857">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:47.147178" elapsed="0.000040"/>
</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-15T19:57:47.147477" elapsed="0.000029"/>
</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-15T19:57:47.147783" elapsed="0.000028"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:46.530989" elapsed="0.616984">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:48.154585" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:48.356222" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:48.758593" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:48.760424" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:48.150645" elapsed="0.615031">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:48.766256" 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-15T19:57:48.766710" elapsed="0.000075"/>
</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-15T19:57:48.767245" elapsed="0.000048"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:48.148950" elapsed="0.618560">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:49.772950" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:49.974429" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:50.376446" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:50.378422" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:49.769073" elapsed="0.614313">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:50.383915" 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-15T19:57:50.384458" 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-15T19:57:50.384942" elapsed="0.000048"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:49.768267" elapsed="0.616931">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:51.391147" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:51.592713" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:51.994898" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:51.996621" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:51.386817" elapsed="0.614778">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:52.002149" 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-15T19:57:52.002609" 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-15T19:57:52.003097" elapsed="0.000046"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:51.386011" elapsed="0.617340">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:53.010418" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:53.212674" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:53.614580" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:53.616957" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:53.005823" elapsed="0.615772">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:53.622088" 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-15T19:57:53.622391" 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-15T19:57:53.622686" elapsed="0.000034"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:53.004849" elapsed="0.618048">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:54.629643" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:54.831251" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:55.233766" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:55.235541" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:54.624936" elapsed="0.615969">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:55.241523" 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-15T19:57:55.242013" 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-15T19:57:55.242473" elapsed="0.000046"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:54.623912" elapsed="0.618809">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:56.248555" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:56.450462" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:56.852292" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:56.854215" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:56.244330" elapsed="0.614870">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:56.859704" elapsed="0.000093"/>
</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-15T19:57:56.860194" elapsed="0.000046"/>
</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-15T19:57:56.860642" elapsed="0.000045"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:56.243484" elapsed="0.617441">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:57.866964" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:58.068641" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:58.471046" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:58.473685" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:57.862583" elapsed="0.616352">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:57:58.479660" elapsed="0.000101"/>
</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-15T19:57:58.479973" 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-15T19:57:58.480182" elapsed="0.000020"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:57.861768" elapsed="0.618539">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:59.486607" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:59.688356" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:00.090192" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:00.092104" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:59.482082" elapsed="0.615093">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:00.097771" 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-15T19:58:00.098230" 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-15T19:58:00.098681" elapsed="0.000044"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:57:59.481197" elapsed="0.617772">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:01.104699" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:01.306655" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:01.708710" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:01.711082" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:01.100603" elapsed="0.614694">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:01.715704" 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-15T19:58:01.716060" elapsed="0.000029"/>
</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-15T19:58:01.716343" elapsed="0.000029"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:01.099801" elapsed="0.616712">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:02.724056" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:02.925664" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:03.327933" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:03.330174" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:02.719642" elapsed="0.615668">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:03.335995" 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-15T19:58:03.336487" 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-15T19:58:03.336986" elapsed="0.000050"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:02.717614" elapsed="0.619659">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:04.344644" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:04.546324" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:04.948128" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:04.950277" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:04.339713" elapsed="0.615774">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:04.956173" 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-15T19:58:04.956641" 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-15T19:58:04.957137" elapsed="0.000045"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:04.338541" elapsed="0.618915">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:05.964477" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:06.165914" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:06.567887" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:06.569862" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:05.959435" elapsed="0.615538">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:06.575677" elapsed="0.000126"/>
</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-15T19:58:06.576226" 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-15T19:58:06.576678" elapsed="0.000044"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:05.958462" elapsed="0.618561">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:07.583542" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:07.785295" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:08.187407" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:08.189583" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:07.578951" elapsed="0.615855">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:08.195429" 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-15T19:58:08.195931" elapsed="0.000056"/>
</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-15T19:58:08.196421" elapsed="0.000044"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:07.577952" elapsed="0.618736">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:09.203648" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:09.405236" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:09.807916" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:09.810070" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:09.198698" elapsed="0.616770">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:09.816122" 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-15T19:58:09.816610" elapsed="0.000046"/>
</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-15T19:58:09.817096" elapsed="0.000046"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:09.197770" elapsed="0.619597">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:10.823587" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:11.025479" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:11.427418" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:11.429327" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:10.819097" elapsed="0.615264">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:11.434995" 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-15T19:58:11.435504" elapsed="0.000046"/>
</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-15T19:58:11.435992" elapsed="0.000055"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:10.818231" elapsed="0.617978">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:12.442285" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:12.643785" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:13.045818" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:13.048831" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:12.437926" elapsed="0.616014">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:13.054529" 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-15T19:58:13.055021" 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-15T19:58:13.055486" elapsed="0.000046"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:12.437044" elapsed="0.618734">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:14.062092" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.263596" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.665638" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.667888" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:14.057510" elapsed="0.615442">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:14.673615" 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-15T19:58:14.674112" 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-15T19:58:14.674568" elapsed="0.000045"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:14.056621" elapsed="0.618376">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:58:14.675173" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:43.292934" elapsed="31.382335">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:43.292381" elapsed="31.383068">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:58:14.678853" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.880173" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:15.282138" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:15.284427" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:14.676570" elapsed="0.612890">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:15.290362" elapsed="0.000110"/>
</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-15T19:58:15.290984" elapsed="0.000048"/>
</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-15T19:58:15.291365" elapsed="0.000020"/>
</kw>
<arg>${all_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:58:14.676218" elapsed="0.615266">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:14.675664" elapsed="0.615969">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:58:15.293141" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-04-15T19:58:15.292879" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:15.292850" elapsed="0.000517"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:58:15.293888" 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-15T19:58:15.293548" elapsed="0.000366"/>
</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-15T19:58:15.294816" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-04-15T19:58:15.294576" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:15.294558" elapsed="0.000525"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:58:15.298716" 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-15T19:58:15.295233" elapsed="0.003556"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:58:15.386378" 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-15T19:58:15.386481" 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-15T19:58:15.298951" elapsed="0.087557"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T19:58:15.386563" elapsed="0.000039"/>
</return>
<msg time="2026-04-15T19:58:15.386744" 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 20 and returns read buffer response.</doc>
<status status="PASS" start="2026-04-15T19:58:15.294259" elapsed="0.092515"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-04-15T19:58:15.387324" 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-15T19:58:15.386940" elapsed="0.000411"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:58:15.387938" 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-15T19:58:15.387518" elapsed="0.000447"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-04-15T19:58:15.388535" 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-15T19:58:15.388166" elapsed="0.000431">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-15T19:58:15.292424" elapsed="0.096273">0.0 != 303.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-15T19:58:15.291865" elapsed="0.096986">0.0 != 303.0</status>
</test>
<test id="s1-s4-s1-t9" name="Disconnect Mininet" line="77">
<kw name="Disconnect Controller Mininet">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:58:15.390271" level="INFO">${rule} = OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -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-15T19:58:15.389906" elapsed="0.000392"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:58:15.390868" level="INFO">${command} = sudo /sbin/iptables -I OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -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-15T19:58:15.390468" elapsed="0.000426"/>
</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-15T19:58:15.393262" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:15.392973" elapsed="0.000344"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:15.392954" elapsed="0.000387"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:15.393617" level="INFO">index=20
host=10.30.171.133
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-15T19:58:15.393717" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:58:15.393496" elapsed="0.000263"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:15.394317" level="INFO">Attempting to execute command "sudo /sbin/iptables -I OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -j DROP" on remote system "10.30.170.185" 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-15T19:58:15.393928" elapsed="0.000435"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:15.394933" 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-15T19:58:15.394523" elapsed="0.000436"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:58:15.395891" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:58:15.395968" 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-15T19:58:15.395580" elapsed="0.000412"/>
</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-15T19:58:15.396158" elapsed="0.000331"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:58:15.397358" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:58:16.122099" 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 Wed Apr 15 19:58:15 UTC 2026

  System load:  0.0                Processes:             119
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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-38640-217-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-15T19:58:15.397042" elapsed="0.725215"/>
</kw>
<msg time="2026-04-15T19:58:16.122344" 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-15T19:58:15.396661" elapsed="0.725774"/>
</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-15T19:58:15.395184" elapsed="0.727378"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:58:16.123158" level="INFO">Executing command 'sudo /sbin/iptables -I OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -j DROP'.</msg>
<msg time="2026-04-15T19:58:16.146425" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:58:16.146545" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:58:16.146589" 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-15T19:58:16.122867" elapsed="0.023745"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:58:16.146815" elapsed="0.000242"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:16.147615" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:58:16.147305" elapsed="0.000358"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:16.147938" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:58:16.147776" elapsed="0.000216"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:16.147727" elapsed="0.000290"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:58:16.148178" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T19:58:16.148072" elapsed="0.000165"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:16.148057" elapsed="0.000204"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:16.148294" elapsed="0.000014"/>
</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-15T19:58:16.152035" elapsed="0.000149"/>
</kw>
<msg time="2026-04-15T19:58:16.152227" 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-15T19:58:16.151371" elapsed="0.000918"/>
</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-15T19:58:16.152447" elapsed="0.000022"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:16.152609" 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-15T19:58:16.148642" elapsed="0.004048"/>
</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-15T19:58:15.392421" elapsed="0.760374"/>
</kw>
<msg time="2026-04-15T19:58:16.152851" 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-15T19:58:15.391639" elapsed="0.761257"/>
</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-15T19:58:15.391100" elapsed="0.761876"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:58:16.153571" 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-15T19:58:16.153153" elapsed="0.000445"/>
</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-15T19:58:16.155810" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:16.155507" elapsed="0.000362"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:16.155489" elapsed="0.000403"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:16.156173" level="INFO">index=20
host=10.30.171.133
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-15T19:58:16.156276" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:58:16.156046" elapsed="0.000339"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:16.156936" level="INFO">Attempting to execute command "sudo /sbin/iptables -L -n" on remote system "10.30.170.185" 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-15T19:58:16.156541" elapsed="0.000440"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:16.157549" level="INFO">${conn_id} = 22</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-15T19:58:16.157150" elapsed="0.000425"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:58:16.158512" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:58:16.158588" 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-15T19:58:16.158212" 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-15T19:58:16.158796" elapsed="0.000342"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:58:16.160001" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:58:16.480892" 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 Wed Apr 15 19:58:15 UTC 2026

  System load:  0.0                Processes:             119
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:58:16 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:58:16.159670" elapsed="0.321375"/>
</kw>
<msg time="2026-04-15T19:58:16.481131" 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-15T19:58:16.159313" elapsed="0.321903"/>
</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-15T19:58:16.157810" elapsed="0.323521"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:58:16.481903" level="INFO">Executing command 'sudo /sbin/iptables -L -n'.</msg>
<msg time="2026-04-15T19:58:16.504859" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:58:16.505113" 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-15T19:58:16.505213" 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-15T19:58:16.481600" elapsed="0.023663"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:58:16.505635" elapsed="0.000503"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:16.507312" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:58:16.506643" elapsed="0.000760"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:16.507911" elapsed="0.000037"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:58:16.507582" elapsed="0.000439"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:16.507530" elapsed="0.000542"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:58:16.508421" elapsed="0.000058"/>
</return>
<status status="PASS" start="2026-04-15T19:58:16.508190" elapsed="0.000361"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:16.508157" elapsed="0.000446"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:16.508697" elapsed="0.000058"/>
</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-15T19:58:16.514913" elapsed="0.000151"/>
</kw>
<msg time="2026-04-15T19:58:16.515108" 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-15T19:58:16.514152" elapsed="0.001018"/>
</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-15T19:58:16.515332" elapsed="0.000022"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:16.515494" 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-15T19:58:16.509446" elapsed="0.006129"/>
</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-15T19:58:16.154970" elapsed="0.360695"/>
</kw>
<msg time="2026-04-15T19:58:16.515816" 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-15T19:58:16.154386" elapsed="0.361479"/>
</kw>
<msg time="2026-04-15T19:58:16.515980" 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-15T19:58:16.153820" elapsed="0.362185"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:16.516410" 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.185        10.30.171.133       

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-15T19:58:16.516161" elapsed="0.000305"/>
</kw>
<doc>Break and restore controller to mininet connection via iptables.</doc>
<status status="PASS" start="2026-04-15T19:58:15.389564" elapsed="1.126960"/>
</kw>
<doc>Disconnect Mininet.</doc>
<status status="PASS" start="2026-04-15T19:58:15.389129" elapsed="1.127516"/>
</test>
<test id="s1-s4-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-15T19:58:16.520759" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:16.722111" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:17.124248" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:17.126702" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:16.518400" elapsed="0.613486">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:17.132550" 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-15T19:58:17.133329" elapsed="0.000050"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:17.132940" elapsed="0.000520"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:17.132774" elapsed="0.000750"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:16.518073" elapsed="0.615720">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:18.141265" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:18.342827" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:18.744867" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:18.746822" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:18.135898" elapsed="0.616174">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:18.752681" 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-15T19:58:18.753460" elapsed="0.000054"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:18.753053" elapsed="0.000541"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:18.752904" elapsed="0.000752"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:18.134889" elapsed="0.619025">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:19.760384" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:19.962158" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:20.364237" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:20.366542" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:19.755666" elapsed="0.615486">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:20.371587" 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-15T19:58:20.372076" elapsed="0.000030"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:20.371840" elapsed="0.000316"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:20.371712" elapsed="0.000484"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:19.754804" elapsed="0.617539">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:21.378699" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:21.581014" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:21.982904" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:21.984797" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:21.374186" elapsed="0.615521">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:21.990286" 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-15T19:58:21.990983" elapsed="0.000050"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:21.990586" elapsed="0.000523"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:21.990455" elapsed="0.000715"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:21.373311" elapsed="0.618165">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:22.997921" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:23.199308" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:23.601317" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:23.602900" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:22.993160" elapsed="0.612031">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:23.605533" 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-15T19:58:23.605891" elapsed="0.000023"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:23.605703" elapsed="0.000247"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:23.605627" elapsed="0.000354"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:22.992327" elapsed="0.613765">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:24.612301" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:24.814275" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:25.217538" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:25.219890" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:24.607860" elapsed="0.615953">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:25.224318" elapsed="0.000048"/>
</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-15T19:58:25.224833" elapsed="0.000034"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:25.224565" elapsed="0.000353"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:25.224454" elapsed="0.000506"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:24.606939" elapsed="0.618181">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:26.231982" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:26.433940" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:26.836514" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:26.838397" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:26.227096" elapsed="0.616347">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:26.844039" elapsed="0.000053"/>
</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-15T19:58:26.844788" elapsed="0.000051"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:26.844346" elapsed="0.000569"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:26.844211" elapsed="0.000767"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:26.226173" elapsed="0.619022">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:27.849342" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:28.050642" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:28.452910" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:28.455450" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:27.846442" elapsed="0.614163">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:28.461054" 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-15T19:58:28.461510" elapsed="0.000031"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:28.461275" elapsed="0.000314"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:28.461177" elapsed="0.000451"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:27.845898" elapsed="0.615901">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:29.468124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:29.669895" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:30.071920" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:30.073922" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:29.463726" elapsed="0.614396">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:30.079255" elapsed="0.000046"/>
</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-15T19:58:30.079787" elapsed="0.000034"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:30.079496" elapsed="0.000375"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:30.079386" elapsed="0.000528"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:29.462821" elapsed="0.617252">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:31.086516" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:31.288291" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:31.690857" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:31.693152" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:31.082144" elapsed="0.616730">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:31.699454" elapsed="0.000061"/>
</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-15T19:58:31.700176" elapsed="0.000050"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:31.699798" elapsed="0.000509"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:31.699630" elapsed="0.000739"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:31.081140" elapsed="0.619492">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:32.707447" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:32.909849" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:33.312107" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:33.314487" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:32.702791" elapsed="0.616815">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:33.320268" elapsed="0.000063"/>
</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-15T19:58:33.320989" elapsed="0.000049"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:33.320589" elapsed="0.000525"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:33.320449" elapsed="0.000725"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:32.701828" elapsed="0.619567">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:34.328208" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:34.530215" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:34.932430" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:34.934340" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:34.323406" elapsed="0.616563">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:34.940530" elapsed="0.000056"/>
</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-15T19:58:34.941250" elapsed="0.000048"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:34.940874" elapsed="0.000502"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:34.940703" elapsed="0.000735"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:34.322456" elapsed="0.619195">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:35.948172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:36.149833" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:36.551914" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:36.553779" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:35.943684" elapsed="0.615288">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:36.559558" 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-15T19:58:36.560288" elapsed="0.000047"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:36.559909" elapsed="0.000502"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:36.559764" elapsed="0.000710"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:35.942712" elapsed="0.617981">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:37.564803" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:37.766439" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:38.168505" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:38.170038" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:37.562168" elapsed="0.610437">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:38.172903" elapsed="0.000026"/>
</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-15T19:58:38.173222" elapsed="0.000022"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:38.173050" elapsed="0.000229"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:38.172984" elapsed="0.000326"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:37.561521" elapsed="0.611892">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:39.179132" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:39.380816" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:39.783095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:39.785031" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:39.175014" elapsed="0.615351">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:39.790933" elapsed="0.000057"/>
</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-15T19:58:39.791599" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:39.791230" elapsed="0.000492"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:39.791103" elapsed="0.000709"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:39.174212" elapsed="0.617808">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:40.798918" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:41.001130" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:41.403217" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:41.405397" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:40.794191" elapsed="0.617173">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:41.411831" 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-15T19:58:41.412348" elapsed="0.000037"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:41.412057" elapsed="0.000381"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:41.411958" elapsed="0.000522"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:40.793145" elapsed="0.619566">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:42.419522" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:42.621355" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:43.023440" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:43.025548" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:42.414797" elapsed="0.616199">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:43.031854" 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-15T19:58:43.032721" elapsed="0.000089"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:43.032271" elapsed="0.000640"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:43.032086" elapsed="0.000901"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:42.413791" elapsed="0.619710">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:44.040448" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:44.242060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:44.644265" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:44.646620" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:44.035616" elapsed="0.616669">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:44.652919" elapsed="0.000063"/>
</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-15T19:58:44.653364" elapsed="0.000021"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:44.653194" elapsed="0.000226"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:44.653111" elapsed="0.000338"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:44.034578" elapsed="0.618975">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:45.659632" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:45.861199" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:46.263243" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:46.265082" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:45.655284" elapsed="0.614852">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:46.270693" elapsed="0.000090"/>
</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-15T19:58:46.271451" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:46.271077" elapsed="0.000499"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:46.270901" elapsed="0.000737"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:45.654412" elapsed="0.617471">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:47.278254" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:47.479602" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:47.881624" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:47.884174" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:47.273670" elapsed="0.615528">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:47.889788" elapsed="0.000061"/>
</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-15T19:58:47.890473" elapsed="0.000049"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:47.890101" elapsed="0.000498"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:47.889963" elapsed="0.000697"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T19:58:47.272809" elapsed="0.618096">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:58:47.891107" 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.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:16.517474" elapsed="31.373838">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:16.516990" elapsed="31.374680">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-s1-t11" name="Reconnect Mininet" line="85">
<kw name="Disconnect Controller Mininet">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:58:47.894723" level="INFO">${rule} = OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -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-15T19:58:47.893887" elapsed="0.000930"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:58:47.896190" level="INFO">${command} = sudo /sbin/iptables -D OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -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-15T19:58:47.895292" elapsed="0.000958"/>
</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-15T19:58:47.900123" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:47.899681" elapsed="0.000522"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:47.899651" elapsed="0.000588"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:47.900631" level="INFO">index=20
host=10.30.171.133
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-15T19:58:47.900799" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:58:47.900451" elapsed="0.000398"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:47.901631" level="INFO">Attempting to execute command "sudo /sbin/iptables -D OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -j DROP" on remote system "10.30.170.185" 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-15T19:58:47.901062" elapsed="0.000636"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:47.902456" 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-15T19:58:47.901950" elapsed="0.000532"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:58:47.903426" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:58:47.903503" 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-15T19:58:47.903130" elapsed="0.000397"/>
</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-15T19:58:47.903689" elapsed="0.000365"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:58:47.904932" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:58:48.334354" 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 Wed Apr 15 19:58:15 UTC 2026

  System load:  0.0                Processes:             119
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:58:16 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:58:47.904598" elapsed="0.429909"/>
</kw>
<msg time="2026-04-15T19:58:48.334580" 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-15T19:58:47.904230" elapsed="0.430434"/>
</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-15T19:58:47.902702" elapsed="0.432086"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:58:48.335199" level="INFO">Executing command 'sudo /sbin/iptables -D OUTPUT -p all --source 10.30.170.185 --destination 10.30.171.133 -j DROP'.</msg>
<msg time="2026-04-15T19:58:48.378643" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:58:48.378930" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:58:48.379026" 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-15T19:58:48.335002" elapsed="0.044073"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:58:48.379466" elapsed="0.000518"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:48.381129" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:58:48.380491" elapsed="0.000732"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:48.381675" elapsed="0.000037"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:58:48.381391" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:48.381346" 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-15T19:58:48.382251" elapsed="0.000057"/>
</return>
<status status="PASS" start="2026-04-15T19:58:48.382014" elapsed="0.000366"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:48.381979" elapsed="0.000453"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:48.382506" 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">
<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-15T19:58:48.388052" elapsed="0.000146"/>
</kw>
<msg time="2026-04-15T19:58:48.388242" 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-15T19:58:48.387385" elapsed="0.000919"/>
</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-15T19:58:48.388464" elapsed="0.000021"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:48.388625" 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-15T19:58:48.383215" elapsed="0.005490"/>
</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-15T19:58:47.898908" elapsed="0.489909"/>
</kw>
<msg time="2026-04-15T19:58:48.388874" 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-15T19:58:47.898035" elapsed="0.490891"/>
</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-15T19:58:47.896710" elapsed="0.492298"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:58:48.389428" 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-15T19:58:48.389164" elapsed="0.000289"/>
</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-15T19:58:48.391640" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:48.391348" elapsed="0.000348"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:48.391325" elapsed="0.000395"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:48.392013" level="INFO">index=20
host=10.30.171.133
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-15T19:58:48.392119" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:58:48.391897" elapsed="0.000249"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:48.392676" level="INFO">Attempting to execute command "sudo /sbin/iptables -L -n" on remote system "10.30.170.185" 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-15T19:58:48.392298" elapsed="0.000424"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:58:48.393274" level="INFO">${conn_id} = 24</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-15T19:58:48.392897" elapsed="0.000403"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:58:48.394241" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:58:48.394317" 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-15T19:58:48.393957" elapsed="0.000383"/>
</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-15T19:58:48.394498" elapsed="0.000337"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:58:48.395677" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:58:48.713855" 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 Wed Apr 15 19:58:15 UTC 2026

  System load:  0.0                Processes:             119
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:58:48 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:58:48.395359" elapsed="0.318579"/>
</kw>
<msg time="2026-04-15T19:58:48.714001" 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-15T19:58:48.395005" elapsed="0.319052"/>
</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-15T19:58:48.393515" elapsed="0.320687"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:58:48.714561" level="INFO">Executing command 'sudo /sbin/iptables -L -n'.</msg>
<msg time="2026-04-15T19:58:48.737703" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:58:48.737972" 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-15T19:58:48.738071" 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-15T19:58:48.714381" elapsed="0.023739"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:58:48.738509" elapsed="0.000479"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:48.740015" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:58:48.739404" elapsed="0.000702"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:48.740516" elapsed="0.000035"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:58:48.740262" elapsed="0.000356"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:48.740219" elapsed="0.000448"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:58:48.741058" elapsed="0.000057"/>
</return>
<status status="PASS" start="2026-04-15T19:58:48.740823" elapsed="0.000364"/>
</branch>
<status status="PASS" start="2026-04-15T19:58:48.740788" elapsed="0.000451"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:58:48.741312" 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">
<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-15T19:58:48.747790" elapsed="0.000142"/>
</kw>
<msg time="2026-04-15T19:58:48.747976" 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-15T19:58:48.747218" elapsed="0.000818"/>
</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-15T19:58:48.748196" elapsed="0.000021"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:48.748357" 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-15T19:58:48.742010" elapsed="0.006427"/>
</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-15T19:58:48.390804" elapsed="0.357721"/>
</kw>
<msg time="2026-04-15T19:58:48.748583" 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-15T19:58:48.390237" elapsed="0.358390"/>
</kw>
<msg time="2026-04-15T19:58:48.748755" 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-15T19:58:48.389656" elapsed="0.359127"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:58:48.749196" 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-15T19:58:48.748945" elapsed="0.000305"/>
</kw>
<arg>restore</arg>
<doc>Break and restore controller to mininet connection via iptables.</doc>
<status status="PASS" start="2026-04-15T19:58:47.893009" elapsed="0.856297"/>
</kw>
<doc>Connect Mininet.</doc>
<status status="PASS" start="2026-04-15T19:58:47.892143" elapsed="0.857274"/>
</test>
<test id="s1-s4-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-15T19:58:48.753834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:48.955257" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:49.357378" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:49.360030" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:48.751531" elapsed="0.613612">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:49.365671" 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-15T19:58:49.366665" 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-15T19:58:49.367194" 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-15T19:58:49.367640" 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-15T19:58:49.368112" elapsed="0.000054"/>
</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-15T19:58:49.368384" 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-15T19:58:49.368581" 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-15T19:58:49.368860" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:49.368673" elapsed="0.000243"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:49.368656" 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-15T19:58:49.369161" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:49.368993" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:49.368978" 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-15T19:58:49.369456" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:49.369288" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:49.369273" elapsed="0.000259"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:49.366289" elapsed="0.003266"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:49.365879" elapsed="0.003704"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:58:48.751203" elapsed="0.618486">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:50.376263" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:50.577968" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:50.980438" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:50.982567" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:50.371841" elapsed="0.615741">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:50.988189" 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-15T19:58:50.989214" 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-15T19:58:50.989492" elapsed="0.000105"/>
</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-15T19:58:50.989866" 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-15T19:58:50.990139" 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-15T19:58:50.990407" 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-15T19:58:50.990683" 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-15T19:58:50.991085" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:50.990838" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:50.990810" 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-15T19:58:50.991509" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:50.991274" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:50.991253" elapsed="0.000365"/>
</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-15T19:58:50.991945" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:50.991689" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:50.991669" elapsed="0.000383"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:50.988859" elapsed="0.003224"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:50.988367" elapsed="0.003752"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:58:50.370923" elapsed="0.621335">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:51.999950" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:52.201772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:52.603612" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:52.605550" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:51.994773" elapsed="0.616083">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:52.611443" 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-15T19:58:52.612463" 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-15T19:58:52.612938" 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-15T19:58:52.613380" 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-15T19:58:52.613845" 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-15T19:58:52.614280" elapsed="0.000088"/>
</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-15T19:58:52.614798" elapsed="0.000046"/>
</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-15T19:58:52.615329" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:52.615010" elapsed="0.000374"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:52.614967" 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-15T19:58:52.615698" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:52.615465" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:52.615450" elapsed="0.000342"/>
</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-15T19:58:52.616014" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:52.615844" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:52.615829" elapsed="0.000259"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:52.612082" elapsed="0.004028"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:52.611625" elapsed="0.004513"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:58:51.993788" elapsed="0.622480">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:53.623391" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:53.825029" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:54.227248" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:54.229893" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:53.618617" elapsed="0.617039">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:54.236527" 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-15T19:58:54.238273" 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-15T19:58:54.238784" 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-15T19:58:54.239233" 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-15T19:58:54.239681" elapsed="0.000123"/>
</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-15T19:58:54.240221" elapsed="0.000055"/>
</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-15T19:58:54.240510" 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-15T19:58:54.240843" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:54.240629" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:54.240603" elapsed="0.000326"/>
</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-15T19:58:54.241161" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:54.240985" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:54.240968" 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-15T19:58:54.241469" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:54.241293" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:54.241278" elapsed="0.000269"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:54.237871" elapsed="0.003699"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:54.236778" elapsed="0.004822"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:58:53.617635" elapsed="0.624119">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:55.249934" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:55.452297" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:55.854362" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:55.856464" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:55.244414" elapsed="0.617245">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:55.862437" 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-15T19:58:55.863516" 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-15T19:58:55.863995" 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-15T19:58:55.864437" 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-15T19:58:55.864907" 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-15T19:58:55.865397" 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-15T19:58:55.865872" 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-15T19:58:55.866345" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:55.866103" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:55.866052" 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-15T19:58:55.866651" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:55.866483" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:55.866468" 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-15T19:58:55.866973" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:55.866804" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:55.866789" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:55.863131" elapsed="0.003941"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:55.862635" elapsed="0.004465"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:58:55.243338" elapsed="0.623895">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:56.875458" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:57.077502" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:57.480062" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:57.482493" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:56.869829" elapsed="0.617967">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:57.488561" 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-15T19:58:57.489837" 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-15T19:58:57.490292" 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-15T19:58:57.490727" elapsed="0.000074"/>
</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-15T19:58:57.491247" 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-15T19:58:57.491691" elapsed="0.000072"/>
</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-15T19:58:57.492179" 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-15T19:58:57.492504" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:57.492322" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:57.492297" 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-15T19:58:57.492843" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:57.492638" elapsed="0.000261"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:57.492623" elapsed="0.000299"/>
</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-15T19:58:57.493143" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:57.492974" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:57.492959" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:57.489421" elapsed="0.003822"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:57.488945" elapsed="0.004326"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:58:56.868783" elapsed="0.624610">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:58.501153" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:58.702811" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:59.105237" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:59.108395" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:58.496080" elapsed="0.617602">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:58:59.114460" 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-15T19:58:59.116123" 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-15T19:58:59.116567" 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-15T19:58:59.117023" 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-15T19:58:59.117451" elapsed="0.000248"/>
</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-15T19:58:59.118158" 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-15T19:58:59.118594" elapsed="0.000046"/>
</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-15T19:58:59.119234" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:59.118839" elapsed="0.000626"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:59.118791" elapsed="0.000737"/>
</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-15T19:58:59.120060" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:59.119650" elapsed="0.000532"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:59.119615" elapsed="0.000617"/>
</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-15T19:58:59.120716" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:58:59.120345" elapsed="0.000521"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:58:59.120312" elapsed="0.000605"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:58:59.115701" elapsed="0.005266"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:58:59.114670" elapsed="0.006360"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:58:58.495006" elapsed="0.626260">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:00.128533" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:00.329953" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:00.732188" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:00.734433" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:00.123854" elapsed="0.615591">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:00.740139" 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-15T19:59:00.741187" 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-15T19:59:00.741666" 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-15T19:59:00.742139" 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-15T19:59:00.742584" 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-15T19:59:00.743048" 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-15T19:59:00.743484" 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-15T19:59:00.744154" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:00.743757" elapsed="0.000519"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:00.743689" elapsed="0.000642"/>
</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-15T19:59:00.744723" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:00.744459" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:00.744420" 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-15T19:59:00.745037" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:00.744866" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:00.744851" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:00.740808" elapsed="0.004329"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:00.740324" elapsed="0.004840"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:00.122849" elapsed="0.622421">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:01.751777" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:01.953159" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:02.355409" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:02.357797" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:01.747427" elapsed="0.615427">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:02.363489" 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-15T19:59:02.364530" 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-15T19:59:02.365000" 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-15T19:59:02.365431" 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-15T19:59:02.365933" 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-15T19:59:02.366369" 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-15T19:59:02.366742" 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-15T19:59:02.367031" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:02.366850" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:02.366828" elapsed="0.000285"/>
</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-15T19:59:02.367335" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:02.367167" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:02.367153" 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-15T19:59:02.367637" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:02.367464" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:02.367449" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:02.364156" elapsed="0.003594"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:02.363678" elapsed="0.004104"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:01.746517" elapsed="0.621384">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:03.374556" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:03.576316" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:03.978301" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:03.980497" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:03.370000" elapsed="0.615700">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:03.986434" 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-15T19:59:03.987899" 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-15T19:59:03.988353" 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-15T19:59:03.988702" 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-15T19:59:03.988925" 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-15T19:59:03.989119" 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-15T19:59:03.989316" 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-15T19:59:03.989599" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:03.989415" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:03.989395" elapsed="0.000285"/>
</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-15T19:59:03.989939" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:03.989764" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:03.989719" 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-15T19:59:03.990241" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:03.990068" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:03.990053" elapsed="0.000266"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:03.987443" elapsed="0.002898"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:03.986619" elapsed="0.003750"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:03.369102" elapsed="0.621376">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:04.994886" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:05.196147" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:05.597606" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:05.599677" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:04.992086" elapsed="0.612703">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:05.605404" 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-15T19:59:05.606202" 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-15T19:59:05.606482" 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-15T19:59:05.606787" 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-15T19:59:05.607060" 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-15T19:59:05.607330" 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-15T19:59:05.607677" 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-15T19:59:05.608076" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:05.607832" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:05.607806" 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-15T19:59:05.608505" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:05.608261" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:05.608240" 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-15T19:59:05.608943" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:05.608687" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:05.608666" elapsed="0.000386"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:05.605966" elapsed="0.003118"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:05.605584" elapsed="0.003537"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:04.991522" elapsed="0.617735">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:06.613964" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:06.815328" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:07.216963" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:07.219098" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:06.611021" elapsed="0.613114">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:07.224963" 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-15T19:59:07.226073" 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-15T19:59:07.226521" 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-15T19:59:07.226982" elapsed="0.000090"/>
</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-15T19:59:07.227482" 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-15T19:59:07.227870" 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-15T19:59:07.228092" 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-15T19:59:07.228381" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:07.228199" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:07.228174" 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-15T19:59:07.228692" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:07.228517" elapsed="0.000264"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:07.228503" elapsed="0.000303"/>
</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-15T19:59:07.229032" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:07.228860" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:07.228844" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:07.225627" elapsed="0.003503"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:07.225156" elapsed="0.004059"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:06.610355" elapsed="0.618981">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:08.236614" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:08.438653" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:08.840944" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:08.843148" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:08.231625" elapsed="0.617456">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:08.849810" 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-15T19:59:08.851347" 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-15T19:59:08.851865" 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-15T19:59:08.852343" 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-15T19:59:08.852902" 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-15T19:59:08.853341" 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-15T19:59:08.853818" 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-15T19:59:08.854119" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:08.853935" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:08.853914" 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-15T19:59:08.854417" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:08.854250" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:08.854236" 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-15T19:59:08.854715" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:08.854543" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:08.854528" elapsed="0.000281"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:08.850924" elapsed="0.003908"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:08.850008" elapsed="0.004851"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:08.230682" elapsed="0.624285">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:09.861908" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:10.063819" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:10.466510" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:10.468424" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:09.857278" elapsed="0.613706">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:10.471369" 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-15T19:59:10.471882" 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-15T19:59:10.472090" 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-15T19:59:10.472284" 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-15T19:59:10.472475" 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-15T19:59:10.472666" 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-15T19:59:10.472879" 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-15T19:59:10.473167" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:10.472987" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:10.472961" elapsed="0.000287"/>
</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-15T19:59:10.473470" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:10.473303" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:10.473288" 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-15T19:59:10.473793" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:10.473595" elapsed="0.000253"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:10.473580" elapsed="0.000291"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:10.471694" elapsed="0.002199"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:10.471467" elapsed="0.002455"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:09.856301" elapsed="0.617737">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:11.479328" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:11.680856" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:12.082475" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:12.084173" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:11.475683" elapsed="0.611615">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:12.087672" 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-15T19:59:12.088302" 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-15T19:59:12.088578" 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-15T19:59:12.088874" 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-15T19:59:12.089219" 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-15T19:59:12.089490" 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-15T19:59:12.089785" 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-15T19:59:12.090162" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:12.089919" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:12.089892" 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-15T19:59:12.090579" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:12.090347" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:12.090326" elapsed="0.000359"/>
</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-15T19:59:12.091010" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:12.090775" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:12.090752" elapsed="0.000363"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:12.088069" elapsed="0.003078"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:12.087801" elapsed="0.003383"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:11.475092" elapsed="0.616232">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:13.098281" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:13.299769" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:13.701560" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:13.703452" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:13.093719" elapsed="0.615293">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:13.709640" 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-15T19:59:13.710649" 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-15T19:59:13.711121" 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-15T19:59:13.711550" 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-15T19:59:13.712007" 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-15T19:59:13.712436" 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-15T19:59:13.712891" 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-15T19:59:13.713538" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:13.713140" elapsed="0.000517"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:13.713098" elapsed="0.000613"/>
</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-15T19:59:13.714105" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:13.713871" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:13.713832" elapsed="0.000365"/>
</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-15T19:59:13.714487" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:13.714315" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:13.714298" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:13.710277" elapsed="0.004307"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:13.709851" elapsed="0.004762"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:13.092851" elapsed="0.621871">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:14.721996" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:14.924098" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:15.326212" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:15.327813" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:14.717030" elapsed="0.613113">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:15.330469" 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-15T19:59:15.330961" 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-15T19:59:15.331161" 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-15T19:59:15.331353" 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-15T19:59:15.331552" 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-15T19:59:15.331757" 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-15T19:59:15.331955" 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-15T19:59:15.332232" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:15.332053" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:15.332034" 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-15T19:59:15.332538" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:15.332369" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:15.332354" 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-15T19:59:15.332852" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:15.332665" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:15.332650" elapsed="0.000284"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:15.330787" elapsed="0.002169"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:15.330559" elapsed="0.002425"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:14.716069" elapsed="0.617020">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:16.344635" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:16.546246" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:16.948444" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:16.949960" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:16.340195" elapsed="0.612051">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:16.952566" elapsed="0.000028"/>
</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-15T19:59:16.953054" 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-15T19:59:16.953254" 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-15T19:59:16.953449" 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-15T19:59:16.953641" 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-15T19:59:16.953848" 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-15T19:59:16.954044" 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-15T19:59:16.954323" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:16.954146" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:16.954126" elapsed="0.000276"/>
</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-15T19:59:16.954623" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:16.954454" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:16.954440" 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-15T19:59:16.954936" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:16.954767" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:16.954751" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:16.952879" elapsed="0.002157"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:16.952650" elapsed="0.002413"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:16.339262" elapsed="0.615908">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:17.961517" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:18.162775" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:18.564895" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:18.566942" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:17.957288" elapsed="0.658143">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:18.615780" 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-15T19:59:18.616257" 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-15T19:59:18.616460" elapsed="0.000099"/>
</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-15T19:59:18.616759" 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-15T19:59:18.616973" 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-15T19:59:18.617176" 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-15T19:59:18.617378" 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-15T19:59:18.617661" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:18.617481" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:18.617461" elapsed="0.000297"/>
</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-15T19:59:18.617983" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:18.617813" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:18.617798" 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-15T19:59:18.618285" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:18.618116" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:18.618101" elapsed="0.000260"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:18.616084" elapsed="0.002299"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:18.615872" elapsed="0.002539"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:17.956418" elapsed="0.662107">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:19.624636" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:19.826363" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:20.228933" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:20.231014" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:19.620839" elapsed="0.615293">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:20.236805" 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-15T19:59:20.238226" 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-15T19:59:20.238676" 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-15T19:59:20.239169" 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-15T19:59:20.239373" 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-15T19:59:20.239567" 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-15T19:59:20.239780" 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-15T19:59:20.240128" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:20.239883" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:20.239861" elapsed="0.000352"/>
</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-15T19:59:20.240507" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:20.240268" elapsed="0.000295"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:20.240253" 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-15T19:59:20.240828" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:20.240638" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:20.240623" elapsed="0.000284"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T19:59:20.237800" elapsed="0.003129"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T19:59:20.236994" elapsed="0.003963"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T19:59:19.619865" elapsed="0.621207">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:59:20.241181" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:48.750390" elapsed="31.490889">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:58:48.749855" elapsed="31.491624">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:59:20.247274" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.448639" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.851048" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.852974" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:59:20.244843" elapsed="0.613455">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:59:20.858798" elapsed="0.000060"/>
</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-15T19:59:20.859223" elapsed="0.000052"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-15T19:59:20.244670" elapsed="0.614728">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:59:20.242256" elapsed="0.617272">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', 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-15T19:59:20.241697" elapsed="0.618194">ConnectionError: HTTPConnectionPool(host='10.30.170.185', 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.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:59:20.866373" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:21.067958" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:21.470385" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:21.472671" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.863726" elapsed="0.613664">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:21.477865" 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-15T19:59:21.478167" 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-15T19:59:21.478460" elapsed="0.000028"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:20.863366" elapsed="0.615276">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:22.485594" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:22.687586" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:23.089544" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:23.091619" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:22.480636" elapsed="0.616747">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:23.098126" 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-15T19:59:23.098615" 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-15T19:59:23.099230" elapsed="0.000056"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:22.479611" elapsed="0.619917">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:24.106593" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:24.308142" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:24.710490" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:24.712354" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:24.101509" elapsed="0.615975">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:24.718097" elapsed="0.000067"/>
</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-15T19:59:24.718445" 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-15T19:59:24.718754" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:24.100488" elapsed="0.618442">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:25.725393" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:25.927100" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:26.329001" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:26.330878" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:25.720862" elapsed="0.615285">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:26.336717" elapsed="0.000112"/>
</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-15T19:59:26.337245" 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-15T19:59:26.337704" elapsed="0.000077"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:25.719879" elapsed="0.618131">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:27.345039" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:27.546829" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:27.948776" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:27.950697" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:27.339984" elapsed="0.615844">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:27.956406" 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-15T19:59:27.956898" 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-15T19:59:27.957362" elapsed="0.000046"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:27.339011" elapsed="0.618619">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:28.964200" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:29.165681" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:29.567850" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:29.569610" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:28.959576" elapsed="0.615385">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:29.575529" 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-15T19:59:29.576023" 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-15T19:59:29.576481" elapsed="0.000087"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:28.958684" elapsed="0.618139">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:30.583544" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:30.784898" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:31.186876" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:31.188688" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:30.578677" elapsed="0.615083">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:31.194312" 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-15T19:59:31.194806" 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-15T19:59:31.195273" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:30.577789" elapsed="0.617742">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:32.202146" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:32.404219" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:32.806197" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:32.808403" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:32.197545" elapsed="0.616094">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:32.814309" 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-15T19:59:32.814855" 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-15T19:59:32.815322" elapsed="0.000050"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:32.196513" elapsed="0.619075">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:33.821925" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:34.023545" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:34.425721" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:34.427964" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:33.817501" elapsed="0.615636">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:34.433771" 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-15T19:59:34.434241" 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-15T19:59:34.434701" elapsed="0.000072"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:33.816529" elapsed="0.618466">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:35.441546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:35.643058" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:36.045610" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:36.047795" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:35.437008" elapsed="0.615957">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:36.053574" 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-15T19:59:36.053892" elapsed="0.000029"/>
</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-15T19:59:36.054256" elapsed="0.000029"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:35.436018" elapsed="0.618412">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:37.059621" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:37.261163" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:37.663297" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:37.667255" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:37.055898" elapsed="0.617036">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:37.673781" 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-15T19:59:37.674279" 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-15T19:59:37.674582" elapsed="0.000021"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:37.055190" elapsed="0.619564">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:38.682246" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:38.883835" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:39.286167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:39.288690" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:38.677010" elapsed="0.616965">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:39.294871" elapsed="0.000072"/>
</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-15T19:59:39.295390" 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-15T19:59:39.295628" elapsed="0.000023"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:38.675911" elapsed="0.619883">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:40.302104" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:40.503516" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:40.905459" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:40.907420" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:40.297783" elapsed="0.614825">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:40.913284" 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-15T19:59:40.913782" 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-15T19:59:40.914245" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:40.296803" elapsed="0.617715">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:41.921051" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:42.122488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:42.524794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:42.526857" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:41.916474" elapsed="0.615430">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:42.532633" 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-15T19:59:42.533178" 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-15T19:59:42.533634" elapsed="0.000074"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:41.915489" elapsed="0.618492">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:43.541619" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:43.743531" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:44.145492" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:44.147431" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:43.536009" elapsed="0.616539">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:44.153217" 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-15T19:59:44.153839" 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-15T19:59:44.154303" elapsed="0.000046"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:43.535049" elapsed="0.619526">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:45.161146" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:45.362794" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:45.765264" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:45.767466" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:45.156496" elapsed="0.616145">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:45.773363" elapsed="0.000066"/>
</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-15T19:59:45.773864" 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-15T19:59:45.774373" elapsed="0.000048"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:45.155529" elapsed="0.619126">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:46.781670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:46.983178" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:47.384995" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:47.386821" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:46.776652" elapsed="0.615289">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:47.392317" 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-15T19:59:47.392608" elapsed="0.000029"/>
</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-15T19:59:47.392917" elapsed="0.000029"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:46.775675" elapsed="0.617416">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:48.398891" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:48.600514" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:49.002607" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:49.004553" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:48.394635" elapsed="0.614945">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:49.010122" 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-15T19:59:49.010571" elapsed="0.000046"/>
</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-15T19:59:49.011053" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:48.393863" elapsed="0.617445">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:50.018584" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:50.220148" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:50.622143" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:50.624032" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:50.013493" elapsed="0.615629">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:50.629685" 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-15T19:59:50.630174" 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-15T19:59:50.630630" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:50.012246" elapsed="0.618686">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:51.637369" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:51.839221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.241130" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.243004" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:51.632868" elapsed="0.614441">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:52.247787" elapsed="0.000037"/>
</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-15T19:59:52.248081" elapsed="0.000029"/>
</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-15T19:59:52.248368" elapsed="0.000028"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:51.631921" elapsed="0.616619">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T19:59:52.248676" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.861818" elapsed="31.387010">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.860316" elapsed="31.388752">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:59:52.255837" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.457122" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.859218" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.861166" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:52.250619" elapsed="0.615575">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:52.866861" elapsed="0.000065"/>
</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-15T19:59:52.867327" elapsed="0.000046"/>
</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-15T19:59:52.867809" elapsed="0.000047"/>
</kw>
<arg>${less_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-04-15T19:59:52.250159" elapsed="0.617926">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:52.249354" elapsed="0.619085">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T19:59:52.871503" elapsed="0.000162"/>
</kw>
<status status="PASS" start="2026-04-15T19:59:52.871249" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:52.871220" elapsed="0.000534"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.872278" 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-15T19:59:52.871943" elapsed="0.000361"/>
</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-15T19:59:52.873181" elapsed="0.000137"/>
</kw>
<status status="PASS" start="2026-04-15T19:59:52.872962" elapsed="0.000446"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:52.872943" elapsed="0.000492"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T19:59:52.877090" 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-15T19:59:52.873577" elapsed="0.003570"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T19:59:52.948196" 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-15T19:59:52.948299" 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-15T19:59:52.877308" elapsed="0.071019"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T19:59:52.948383" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T19:59:52.948551" 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 20 and returns read buffer response.</doc>
<status status="PASS" start="2026-04-15T19:59:52.872640" elapsed="0.075937"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-04-15T19:59:52.949034" 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-15T19:59:52.948759" elapsed="0.000302"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.949640" 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-15T19:59:52.949226" elapsed="0.000440"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.950265" 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-15T19:59:52.949882" elapsed="0.000445">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-15T19:59:52.870569" elapsed="0.079857">0.0 != 300.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-15T19:59:52.869109" elapsed="0.081448">0.0 != 300.0</status>
</test>
<test id="s1-s4-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-15T19:59:52.956974" 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-15T19:59:52.956567" elapsed="0.000434"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.957464" 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-15T19:59:52.957165" elapsed="0.000325"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T19:59:52.957534" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:59:52.957690" 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-15T19:59:52.956183" elapsed="0.001531"/>
</kw>
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.958706" 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-15T19:59:52.958331" elapsed="0.000422"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.959212" 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-15T19:59:52.958918" elapsed="0.000319"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T19:59:52.959280" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:52.959431" 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-15T19:59:52.957940" elapsed="0.001516"/>
</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-15T19:59:52.960942" 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-15T19:59:52.960548" elapsed="0.000421"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.961423" 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-15T19:59:52.961129" elapsed="0.000321"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T19:59:52.961494" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:52.961647" 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-15T19:59:52.960177" elapsed="0.001494"/>
</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-15T19:59:52.962847" level="INFO">${member_ip} = 10.30.170.185</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-15T19:59:52.962552" elapsed="0.000322"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:52.963641" level="INFO">index=20
host=10.30.171.133
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-15T19:59:52.963756" level="INFO">${current_connection} = index=20
host=10.30.171.133
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-15T19:59:52.963518" elapsed="0.000267"/>
</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-15T19:59:52.967458" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:52.966579" elapsed="0.001025"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:52.966557" elapsed="0.001131"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:52.968162" level="INFO">index=20
host=10.30.171.133
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-15T19:59:52.968394" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:59:52.967897" elapsed="0.000608"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.969512" level="INFO">Attempting to execute command "/tmp/karaf-0.23.1-SNAPSHOT/bin/stop" on remote system "10.30.170.185" 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-15T19:59:52.968784" elapsed="0.000792"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:52.970631" 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-15T19:59:52.969862" elapsed="0.000901"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:59:52.972976" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:59:52.973158" 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-15T19:59:52.972542" elapsed="0.000661"/>
</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-15T19:59:52.973915" elapsed="0.000482"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:59:52.976020" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:59:53.683264" 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 Wed Apr 15 19:59:53 UTC 2026

  System load:  0.0                Processes:             122
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:58:48 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:59:52.975598" elapsed="0.707795"/>
</kw>
<msg time="2026-04-15T19:59:53.683526" 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-15T19:59:52.975131" elapsed="0.708504"/>
</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-15T19:59:52.971211" elapsed="0.712579"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:59:53.684661" level="INFO">Executing command '/tmp/karaf-0.23.1-SNAPSHOT/bin/stop'.</msg>
<msg time="2026-04-15T19:59:53.697618" level="INFO">Command exited with return code 127.</msg>
<msg time="2026-04-15T19:59:53.697910" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:59:53.698266" 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-15T19:59:53.684223" elapsed="0.014342"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:59:53.699588" elapsed="0.000790"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:53.703563" 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-15T19:59:53.701970" elapsed="0.001736"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:53.704892" elapsed="0.000085"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:59:53.704210" elapsed="0.000909"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:53.704156" elapsed="0.001164"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:59:53.706124" elapsed="0.000100"/>
</return>
<status status="PASS" start="2026-04-15T19:59:53.705548" elapsed="0.000819"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:53.705510" elapsed="0.001109"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:53.706979" 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-15T19:59:53.712259" elapsed="0.000156"/>
</kw>
<msg time="2026-04-15T19:59:53.712493" 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-15T19:59:53.711398" elapsed="0.001203"/>
</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-15T19:59:53.713760" elapsed="0.000064"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:53.715026" elapsed="0.000061"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:59:53.707323" elapsed="0.007847"/>
</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-15T19:59:52.965681" elapsed="0.749729"/>
</kw>
<msg time="2026-04-15T19:59:53.715465" 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-15T19:59:52.965016" elapsed="0.750499"/>
</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-15T19:59:52.964465" elapsed="0.751130"/>
</kw>
<msg time="2026-04-15T19:59:53.715637" 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-15T19:59:52.963945" elapsed="0.751737"/>
</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-15T19:59:53.719001" elapsed="0.000143"/>
</kw>
<msg time="2026-04-15T19:59:53.719187" 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-15T19:59:53.718460" elapsed="0.000789"/>
</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-15T19:59:53.719408" elapsed="0.000022"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:53.719570" elapsed="0.000019"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:59:53.716092" elapsed="0.003557"/>
</kw>
<msg time="2026-04-15T19:59:53.720011" 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-15T19:59:52.963099" elapsed="0.756940"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:53.720481" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:59:53.720232" elapsed="0.000291"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T19:59:53.720566" elapsed="0.000029"/>
</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-15T19:59:52.962141" elapsed="0.758550"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-15T19:59:52.961937" elapsed="0.758808"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-15T19:59:52.961790" elapsed="0.758995"/>
</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-15T19:59:52.959664" elapsed="0.761184"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:59:53.721308" 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-15T19:59:53.721006" elapsed="0.000328"/>
</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-15T19:59:53.721488" elapsed="0.000219"/>
</kw>
<if>
<branch type="IF" condition="not ${confirm}">
<return>
<value>${updated_index_list}</value>
<status status="NOT RUN" start="2026-04-15T19:59:53.721905" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:59:53.721799" elapsed="0.000148"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:53.721779" elapsed="0.000190"/>
</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-15T19:59:53.723993" 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-15T19:59:53.723647" elapsed="0.000411"/>
</kw>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-04-15T19:59:53.724981" level="INFO">${member_ip} = 10.30.170.185</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-15T19:59:53.724675" elapsed="0.000333"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:53.725781" level="INFO">index=20
host=10.30.171.133
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-15T19:59:53.725882" level="INFO">${current_connection} = index=20
host=10.30.171.133
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-15T19:59:53.725639" elapsed="0.000270"/>
</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-15T19:59:53.730229" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:53.729936" elapsed="0.000353"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:53.729915" elapsed="0.000398"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:53.730588" level="INFO">index=20
host=10.30.171.133
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-15T19:59:53.730689" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:59:53.730467" elapsed="0.000249"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:53.731288" level="INFO">Attempting to execute command "ps axf | grep org.apache.karaf | grep -v grep | wc -l" on remote system "10.30.170.185" 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-15T19:59:53.730891" elapsed="0.000445"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:53.731892" level="INFO">${conn_id} = 26</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-15T19:59:53.731500" elapsed="0.000418"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:59:53.732815" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:59:53.732892" 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-15T19:59:53.732526" elapsed="0.000389"/>
</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-15T19:59:53.733075" elapsed="0.000315"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:59:53.734354" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:59:54.043062" 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 Wed Apr 15 19:59:53 UTC 2026

  System load:  0.0                Processes:             122
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:59:53 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:59:53.734038" elapsed="0.309102"/>
</kw>
<msg time="2026-04-15T19:59:54.043199" 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-15T19:59:53.733559" elapsed="0.309699"/>
</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-15T19:59:53.732135" elapsed="0.311205"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.043697" level="INFO">Executing command 'ps axf | grep org.apache.karaf | grep -v grep | wc -l'.</msg>
<msg time="2026-04-15T19:59:54.065959" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T19:59:54.066193" level="INFO">${stdout} = 0</msg>
<msg time="2026-04-15T19:59:54.066290" 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-15T19:59:54.043518" elapsed="0.022821"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:59:54.066788" elapsed="0.000437"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.068245" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:59:54.067638" elapsed="0.000700"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.068862" elapsed="0.000041"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:59:54.068495" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.068452" elapsed="0.000573"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:59:54.069391" elapsed="0.000058"/>
</return>
<status status="PASS" start="2026-04-15T19:59:54.069145" elapsed="0.000377"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.069111" elapsed="0.000464"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.069649" 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-15T19:59:54.076173" elapsed="0.000144"/>
</kw>
<msg time="2026-04-15T19:59:54.076362" 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-15T19:59:54.075616" elapsed="0.000811"/>
</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-15T19:59:54.076587" elapsed="0.000022"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.076768" 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-15T19:59:54.070353" elapsed="0.006498"/>
</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-15T19:59:53.729244" elapsed="0.347767"/>
</kw>
<msg time="2026-04-15T19:59:54.077079" 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-15T19:59:53.727445" elapsed="0.349737"/>
</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-15T19:59:53.726602" elapsed="0.350774"/>
</kw>
<msg time="2026-04-15T19:59:54.077419" 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-15T19:59:53.726066" elapsed="0.351399"/>
</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-15T19:59:54.080787" elapsed="0.000201"/>
</kw>
<msg time="2026-04-15T19:59:54.081097" 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-15T19:59:54.080195" elapsed="0.000966"/>
</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-15T19:59:54.081321" elapsed="0.000021"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.081483" 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-15T19:59:54.077774" elapsed="0.003790"/>
</kw>
<msg time="2026-04-15T19:59:54.081653" 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-15T19:59:53.725227" elapsed="0.356451"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.082144" level="INFO">0</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:59:54.081885" elapsed="0.000304"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T19:59:54.082234" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:54.082386" 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-15T19:59:53.724265" elapsed="0.358145"/>
</kw>
<return>
<value>${count}</value>
<status status="PASS" start="2026-04-15T19:59:54.082457" elapsed="0.000025"/>
</return>
<msg time="2026-04-15T19:59:54.082601" 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-15T19:59:53.723300" elapsed="0.359325"/>
</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-15T19:59:54.082851" elapsed="0.000371"/>
</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-15T19:59:53.722907" elapsed="0.360380"/>
</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-15T19:59:53.722306" elapsed="0.361028"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-15T19:59:53.722157" elapsed="0.361215"/>
</iter>
<var>${index}</var>
<value>@{stop_index_list}</value>
<status status="PASS" start="2026-04-15T19:59:53.722017" elapsed="0.361387"/>
</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-15T19:59:54.086585" 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-15T19:59:54.086203" elapsed="0.000409"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.087155" 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-15T19:59:54.086853" elapsed="0.000328"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T19:59:54.087227" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:54.087380" 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-15T19:59:54.085823" elapsed="0.001582"/>
</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-15T19:59:54.088473" level="INFO">${member_ip} = 10.30.170.185</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-15T19:59:54.088206" elapsed="0.000293"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.089256" level="INFO">index=20
host=10.30.171.133
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-15T19:59:54.089355" level="INFO">${current_connection} = index=20
host=10.30.171.133
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-15T19:59:54.089144" elapsed="0.000237"/>
</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-15T19:59:54.093319" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:54.092466" elapsed="0.001000"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.092446" elapsed="0.001098"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.093865" level="INFO">index=20
host=10.30.171.133
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-15T19:59:54.094100" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:59:54.093751" elapsed="0.000458"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.095222" level="INFO">Attempting to execute command "netstat -pnatu | grep 2550" on remote system "10.30.170.185" 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-15T19:59:54.094474" elapsed="0.000811"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.096293" level="INFO">${conn_id} = 27</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-15T19:59:54.095553" elapsed="0.000847"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.098602" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:59:54.098822" 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-15T19:59:54.098201" elapsed="0.000666"/>
</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-15T19:59:54.099573" elapsed="0.000479"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.101698" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:59:54.394127" 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 Wed Apr 15 19:59:53 UTC 2026

  System load:  0.0                Processes:             122
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:59:53 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:59:54.101355" elapsed="0.292951"/>
</kw>
<msg time="2026-04-15T19:59:54.394463" 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-15T19:59:54.100848" elapsed="0.293750"/>
</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-15T19:59:54.096866" elapsed="0.297902"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.395747" level="INFO">Executing command 'netstat -pnatu | grep 2550'.</msg>
<msg time="2026-04-15T19:59:54.409046" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-04-15T19:59:54.409420" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:59:54.409690" 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-15T19:59:54.395279" elapsed="0.014623"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:59:54.410552" elapsed="0.000563"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.413177" 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-15T19:59:54.412171" elapsed="0.001099"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.413973" elapsed="0.000050"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:59:54.413577" elapsed="0.000537"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.413541" elapsed="0.000697"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:59:54.414707" elapsed="0.000147"/>
</return>
<status status="PASS" start="2026-04-15T19:59:54.414383" elapsed="0.000576"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.414359" elapsed="0.000726"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.415195" 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-15T19:59:54.421984" elapsed="0.000160"/>
</kw>
<msg time="2026-04-15T19:59:54.422221" 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-15T19:59:54.421056" elapsed="0.001271"/>
</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-15T19:59:54.423592" elapsed="0.000064"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.424810" elapsed="0.000062"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:59:54.415656" elapsed="0.009300"/>
</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-15T19:59:54.091475" elapsed="0.333717"/>
</kw>
<msg time="2026-04-15T19:59:54.425248" 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-15T19:59:54.090596" elapsed="0.334703"/>
</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-15T19:59:54.090062" elapsed="0.335321"/>
</kw>
<msg time="2026-04-15T19:59:54.425425" 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-15T19:59:54.089538" elapsed="0.335933"/>
</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-15T19:59:54.428673" elapsed="0.000346"/>
</kw>
<msg time="2026-04-15T19:59:54.429063" 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-15T19:59:54.428174" elapsed="0.000951"/>
</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-15T19:59:54.429287" elapsed="0.000022"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.429453" 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-15T19:59:54.425781" elapsed="0.003753"/>
</kw>
<msg time="2026-04-15T19:59:54.429626" 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-15T19:59:54.088717" elapsed="0.340934"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.430111" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:59:54.429859" elapsed="0.000294"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T19:59:54.430197" elapsed="0.000028"/>
</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-15T19:59:54.087793" elapsed="0.342526"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-15T19:59:54.087590" elapsed="0.342766"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-15T19:59:54.087461" elapsed="0.342933"/>
</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-15T19:59:54.083623" elapsed="0.346832"/>
</kw>
<return>
<value>${updated_index_list}</value>
<status status="PASS" start="2026-04-15T19:59:54.430496" elapsed="0.000026"/>
</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-15T19:59:52.951889" elapsed="1.478734"/>
</kw>
<msg time="2026-04-15T19:59:54.430775" level="INFO">${status} = PASS</msg>
<msg time="2026-04-15T19:59:54.430822" 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-15T19:59:52.951317" elapsed="1.479528"/>
</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-15T19:59:54.431353" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:54.430934" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.430916" elapsed="0.000520"/>
</if>
<kw name="Start_Members_From_List_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.443627" 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-15T19:59:54.443245" elapsed="0.000409"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.444208" 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-15T19:59:54.443843" elapsed="0.000392"/>
</kw>
<kw name="Get Current Date" owner="DateTime">
<msg time="2026-04-15T19:59:54.444682" level="INFO">${epoch} = 1776283194.444605</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-15T19:59:54.444402" elapsed="0.000306"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.445301" level="INFO">${gc_filepath} = /tmp/karaf-0.23.1-SNAPSHOT/data/log/gc_1776283194.444605.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-15T19:59:54.444896" elapsed="0.000431"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.445890" level="INFO">${gc_options} = -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/karaf-0.23.1-SNAPSHOT/data/log/gc_1776283194.444605.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-15T19:59:54.445499" elapsed="0.000418"/>
</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-15T19:59:54.447441" 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-15T19:59:54.447061" elapsed="0.000406"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.447947" 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-15T19:59:54.447631" elapsed="0.000345"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T19:59:54.448022" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:54.448176" 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-15T19:59:54.446662" elapsed="0.001538"/>
</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-15T19:59:54.449300" level="INFO">${member_ip} = 10.30.170.185</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-15T19:59:54.449027" elapsed="0.000299"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.450099" level="INFO">index=20
host=10.30.171.133
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-15T19:59:54.450197" level="INFO">${current_connection} = index=20
host=10.30.171.133
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-15T19:59:54.449976" elapsed="0.000247"/>
</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-15T19:59:54.453257" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:54.452972" elapsed="0.000367"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.452952" elapsed="0.000412"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.453624" level="INFO">index=20
host=10.30.171.133
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-15T19:59:54.453724" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T19:59:54.453516" elapsed="0.000254"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.454787" 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_1776283194.444605.log" on remote system "10.30.170.185" 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-15T19:59:54.453926" elapsed="0.000952"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.455671" 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-15T19:59:54.455052" elapsed="0.000646"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.457083" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T19:59:54.457198" 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-15T19:59:54.456489" elapsed="0.000799"/>
</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-15T19:59:54.457613" elapsed="0.000821"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.461292" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T19:59:54.796363" 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 Wed Apr 15 19:59:53 UTC 2026

  System load:  0.0                Processes:             122
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:59:54 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T19:59:54.460620" elapsed="0.335924"/>
</kw>
<msg time="2026-04-15T19:59:54.796628" 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-15T19:59:54.459278" elapsed="0.337440"/>
</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-15T19:59:54.455948" elapsed="0.341191"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T19:59:54.797582" 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_1776283194.444605.log'.</msg>
<msg time="2026-04-15T19:59:54.810056" level="INFO">Command exited with return code 127.</msg>
<msg time="2026-04-15T19:59:54.810165" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T19:59:54.810209" 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-15T19:59:54.797318" elapsed="0.012916"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T19:59:54.810402" elapsed="0.000224"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.811576" 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-15T19:59:54.810837" elapsed="0.000843"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.812145" elapsed="0.000034"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:59:54.811886" elapsed="0.000362"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.811840" elapsed="0.000458"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T19:59:54.812648" elapsed="0.000058"/>
</return>
<status status="PASS" start="2026-04-15T19:59:54.812415" elapsed="0.000399"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.812382" elapsed="0.000487"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.812944" 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-15T19:59:54.825173" elapsed="0.000329"/>
</kw>
<msg time="2026-04-15T19:59:54.825564" 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-15T19:59:54.823655" elapsed="0.001991"/>
</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-15T19:59:54.826002" elapsed="0.000024"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.826242" elapsed="0.000026"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:59:54.813614" elapsed="0.012773"/>
</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-15T19:59:54.452419" elapsed="0.374061"/>
</kw>
<msg time="2026-04-15T19:59:54.826533" 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-15T19:59:54.451704" elapsed="0.374878"/>
</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-15T19:59:54.451163" elapsed="0.375560"/>
</kw>
<msg time="2026-04-15T19:59:54.826783" 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-15T19:59:54.450381" elapsed="0.376448"/>
</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-15T19:59:54.830192" elapsed="0.000143"/>
</kw>
<msg time="2026-04-15T19:59:54.830378" 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-15T19:59:54.829516" elapsed="0.000931"/>
</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-15T19:59:54.830609" elapsed="0.000021"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.830790" elapsed="0.000021"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T19:59:54.827146" elapsed="0.003728"/>
</kw>
<msg time="2026-04-15T19:59:54.830962" 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-15T19:59:54.449544" elapsed="0.381442"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.831444" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:59:54.831192" elapsed="0.000293"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T19:59:54.831528" elapsed="0.000029"/>
</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-15T19:59:54.448603" elapsed="0.383047"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-15T19:59:54.448398" elapsed="0.383288"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-15T19:59:54.448261" elapsed="0.383456"/>
</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-15T19:59:54.446136" elapsed="0.385656"/>
</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-15T19:59:54.841639" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:54.841330" elapsed="0.000368"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.841312" elapsed="0.000410"/>
</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-15T19:59:54.843214" 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-15T19:59:54.842806" elapsed="0.000435"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.843700" 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-15T19:59:54.843402" elapsed="0.000323"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T19:59:54.843788" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:54.843942" 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-15T19:59:54.842416" elapsed="0.001550"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.844998" 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-15T19:59:54.844681" elapsed="0.000344"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T19:59:54.845071" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:54.845217" 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-15T19:59:54.844332" elapsed="0.000909"/>
</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-15T19:59:54.933680" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:59:54.933066" elapsed="0.000728"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T19:59:54.935553" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:59:54.935259" elapsed="0.000384">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T19:59:54.935898" 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-15T19:59:54.934760" elapsed="0.001234"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.937897" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:59:54.937233" elapsed="0.000759"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T19:59:54.939273" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T19:59:54.939532" 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-15T19:59:54.938942" elapsed="0.000686"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.941199" 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-15T19:59:54.940571" elapsed="0.000732"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.942670" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:59:54.942405" elapsed="0.000310"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.943194" 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-15T19:59:54.942898" 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-15T19:59:54.943543" 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-15T19:59:54.943761" 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-15T19:59:54.943941" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T19:59:54.943407" elapsed="0.000596"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.943268" elapsed="0.000765"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T19:59:54.944074" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T19:59:54.944256" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T19:59:54.942029" elapsed="0.002276"/>
</kw>
<status status="PASS" start="2026-04-15T19:59:54.941450" elapsed="0.002897"/>
</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-15T19:59:54.944670" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:54.944403" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.941399" elapsed="0.003568"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.946613" 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-15T19:59:54.945913" elapsed="0.000798"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T19:59:54.946813" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T19:59:54.930716" elapsed="0.016391"/>
</kw>
<msg time="2026-04-15T19:59:54.947644" 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-15T19:59:54.881499" elapsed="0.066255"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.960420" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.972423" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T19:59:54.984511" 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-15T19:59:54.984709" elapsed="0.000034"/>
</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-15T19:59:54.984901" 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-15T19:59:54.985329" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:54.985174" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:54.985158" elapsed="0.000352"/>
</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-15T19:59:54.985653" 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-15T19:59:54.985846" 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-15T19:59:54.986015" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T19:59:54.985126" elapsed="0.000943"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.984976" elapsed="0.001118"/>
</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-15T19:59:54.986241" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.986316" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T19:59:54.986444" 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-15T19:59:54.877323" elapsed="0.109147"/>
</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-15T19:59:54.987962" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:59:54.987556" elapsed="0.000546">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T19:59:54.988307" 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-15T19:59:54.987199" elapsed="0.001133"/>
</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-15T19:59:54.988651" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:54.988405" elapsed="0.000302"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.989421" 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-15T19:59:54.988928" elapsed="0.000519"/>
</kw>
<status status="PASS" start="2026-04-15T19:59:54.988746" elapsed="0.000737"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.988386" elapsed="0.001118"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.991926" 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-15T19:59:54.989656" elapsed="0.002296"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T19:59:54.992004" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T19:59:54.992157" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:59:54.986846" elapsed="0.005336"/>
</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-15T19:59:54.993556" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:59:54.993173" elapsed="0.000522">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T19:59:54.993959" 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-15T19:59:54.992831" elapsed="0.001154"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T19:59:54.994194" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-15T19:59:54.994058" elapsed="0.000196"/>
</branch>
<status status="PASS" start="2026-04-15T19:59:54.994039" 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-15T19:59:54.994424" 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-15T19:59:54.994597" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T19:59:54.994663" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T19:59:54.998180" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T19:59:54.992484" elapsed="0.005723"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:54.999670" 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-15T19:59:54.999394" elapsed="0.000323"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T19:59:55.000159" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T19:59:54.999889" elapsed="0.000314"/>
</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-15T19:59:55.005606" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:55.002322" elapsed="0.005030">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T19:59:55.000270" elapsed="0.007173">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:55.007634" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:55.007478" elapsed="0.000221"/>
</branch>
<status status="FAIL" start="2026-04-15T19:59:55.000253" elapsed="0.007470">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:55.008262" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T19:59:55.008396" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T19:59:55.008360" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:55.008343" elapsed="0.000116"/>
</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-15T19:59:55.008603" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T19:59:55.008673" 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-15T19:59:54.998555" elapsed="0.010252">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:55.008886" 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-15T19:59:54.855362" elapsed="0.153622">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:55.009254" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:55.009077" elapsed="0.000284"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:55.009060" elapsed="0.000325"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T19:59:55.009418" 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-15T19:59:54.849302" elapsed="0.160217">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:54.844155" elapsed="0.165430">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:54.844020" elapsed="0.165623">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:54.842045" elapsed="0.167707">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T19:59:54.841792" elapsed="0.168019">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T19:59:54.841776" elapsed="0.168066">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:55.010128" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T19:59:55.009909" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-15T19:59:55.009893" elapsed="0.000316"/>
</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-15T19:59:54.840913" elapsed="0.169373">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.027028" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:05.026631" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:05.026604" elapsed="0.000535"/>
</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-15T20:00:05.028874" 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-15T20:00:05.028375" elapsed="0.000528"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.029443" 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-15T20:00:05.029099" elapsed="0.000371"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:00:05.029523" elapsed="0.000041"/>
</return>
<msg time="2026-04-15T20:00:05.029698" 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-15T20:00:05.027877" elapsed="0.001846"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.031164" 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-15T20:00:05.030837" elapsed="0.000355"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:00:05.031242" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:05.031395" 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-15T20:00:05.030453" elapsed="0.000969"/>
</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-15T20:00:05.120382" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:05.119751" elapsed="0.000729"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:00:05.122429" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:05.122159" elapsed="0.000361">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:05.122716" 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-15T20:00:05.121649" elapsed="0.001182"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.124463" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:05.123812" elapsed="0.000749"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:00:05.126123" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:00:05.126391" 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-15T20:00:05.125808" elapsed="0.000677"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.127845" 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-15T20:00:05.127431" elapsed="0.000522"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.129501" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:05.129234" elapsed="0.000312"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.130016" 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-15T20:00:05.129724" 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-15T20:00:05.130371" 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-15T20:00:05.130578" 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-15T20:00:05.130774" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:00:05.130233" elapsed="0.000601"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:00:05.130092" elapsed="0.000773"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:00:05.130910" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:05.131093" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:00:05.128671" elapsed="0.002471"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:05.128103" elapsed="0.003081"/>
</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-15T20:00:05.131512" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:05.131242" elapsed="0.000349"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:05.128051" elapsed="0.003593"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.133690" 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-15T20:00:05.132587" elapsed="0.001219"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:00:05.133893" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:00:05.117634" elapsed="0.016555"/>
</kw>
<msg time="2026-04-15T20:00:05.134445" 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-15T20:00:05.067625" elapsed="0.066874"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:05.147096" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:05.159253" elapsed="0.000036"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:05.171534" 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-15T20:00:05.171749" 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-15T20:00:05.171933" 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-15T20:00:05.172349" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:05.172199" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:05.172184" elapsed="0.000345"/>
</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-15T20:00:05.172675" 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-15T20:00:05.172872" 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-15T20:00:05.173043" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:00:05.172152" elapsed="0.000943"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:00:05.172009" elapsed="0.001112"/>
</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-15T20:00:05.173269" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:05.173346" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:00:05.173462" 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-15T20:00:05.063398" elapsed="0.110089"/>
</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-15T20:00:05.174978" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:05.174576" elapsed="0.000542">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:05.175330" 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-15T20:00:05.174232" elapsed="0.001124"/>
</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-15T20:00:05.175678" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:05.175429" elapsed="0.000328"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.176488" 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-15T20:00:05.175994" elapsed="0.000523"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:05.175783" elapsed="0.000770"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:05.175410" elapsed="0.001165"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.179001" 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-15T20:00:05.176732" elapsed="0.002296"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:00:05.179079" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:00:05.179232" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:05.173891" elapsed="0.005366"/>
</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-15T20:00:05.180672" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:05.180291" elapsed="0.000539">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:05.181039" 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-15T20:00:05.179952" elapsed="0.001113"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:00:05.181274" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:00:05.181137" elapsed="0.000197"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:05.181119" 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-15T20:00:05.181506" 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-15T20:00:05.181681" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:00:05.181774" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:00:05.183841" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:05.179600" elapsed="0.004268"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.185404" 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-15T20:00:05.185125" elapsed="0.000325"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:05.185963" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:05.185608" elapsed="0.000404"/>
</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-15T20:00:05.191644" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.188159" elapsed="0.005168">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:05.186087" elapsed="0.007328">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.193606" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:05.193449" elapsed="0.000223"/>
</branch>
<status status="FAIL" start="2026-04-15T20:00:05.186067" elapsed="0.007628">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.194852" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:05.194996" elapsed="0.000032"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:00:05.194956" elapsed="0.000115"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:05.194937" elapsed="0.000159"/>
</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-15T20:00:05.195250" elapsed="0.000024"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:00:05.195326" 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-15T20:00:05.184240" elapsed="0.011199">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.195519" 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-15T20:00:05.041401" elapsed="0.154220">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.195962" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:05.195780" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:05.195761" elapsed="0.000298"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:05.196092" 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-15T20:00:05.035328" elapsed="0.160865">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.030274" elapsed="0.166005">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.029803" elapsed="0.166559">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.027460" elapsed="0.169029">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:05.027197" elapsed="0.169368">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:00:05.027181" elapsed="0.169424">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:05.196939" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:05.196692" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:05.196672" elapsed="0.000350"/>
</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-15T20:00:05.025916" elapsed="0.171188">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.211709" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:15.211358" elapsed="0.000446"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:15.211333" elapsed="0.000500"/>
</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-15T20:00:15.213466" 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-15T20:00:15.212999" elapsed="0.000497"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.213995" 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-15T20:00:15.213665" elapsed="0.000356"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:00:15.214071" elapsed="0.000041"/>
</return>
<msg time="2026-04-15T20:00:15.214526" 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-15T20:00:15.212541" elapsed="0.002011"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.215656" 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-15T20:00:15.215347" elapsed="0.000420"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:00:15.215818" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:15.215970" 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-15T20:00:15.214989" elapsed="0.001007"/>
</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-15T20:00:15.306029" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:15.305401" elapsed="0.000732"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:00:15.308205" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:15.307902" elapsed="0.000387">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:15.308487" 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-15T20:00:15.307397" elapsed="0.001184"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.310228" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:15.309566" elapsed="0.000759"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:00:15.311813" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:00:15.312089" 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-15T20:00:15.311472" elapsed="0.000712"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.313613" 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-15T20:00:15.313212" 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-15T20:00:15.315326" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:15.315060" elapsed="0.000311"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.315855" 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-15T20:00:15.315534" elapsed="0.000347"/>
</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-15T20:00:15.316201" 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-15T20:00:15.316552" 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-15T20:00:15.316755" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:00:15.316065" elapsed="0.000759"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:00:15.315930" elapsed="0.000926"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:00:15.316899" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:15.317081" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:00:15.314446" elapsed="0.002683"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:15.313885" elapsed="0.003287"/>
</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-15T20:00:15.317499" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:15.317229" elapsed="0.000349"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:15.313834" elapsed="0.003810"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.319475" 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-15T20:00:15.318599" elapsed="0.000972"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:00:15.319661" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:00:15.303281" elapsed="0.016692"/>
</kw>
<msg time="2026-04-15T20:00:15.320275" 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-15T20:00:15.252926" elapsed="0.067469"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:15.332892" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:15.345092" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:15.357121" 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-15T20:00:15.357320" 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-15T20:00:15.357496" 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-15T20:00:15.357932" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:15.357783" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:15.357766" elapsed="0.000345"/>
</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-15T20:00:15.358256" 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-15T20:00:15.358424" 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-15T20:00:15.358591" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:00:15.357713" elapsed="0.000931"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:00:15.357570" elapsed="0.001099"/>
</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-15T20:00:15.358835" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:15.358913" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:00:15.359027" 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-15T20:00:15.248619" elapsed="0.110433"/>
</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-15T20:00:15.360480" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:15.360102" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:15.360880" 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-15T20:00:15.359758" elapsed="0.001147"/>
</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-15T20:00:15.361250" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:15.361002" elapsed="0.000305"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.362097" 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-15T20:00:15.361580" elapsed="0.000544"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:15.361331" elapsed="0.000831"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:15.360983" elapsed="0.001200"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.364598" 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-15T20:00:15.362336" elapsed="0.002288"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:00:15.364677" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:15.364847" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:15.359413" elapsed="0.005458"/>
</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-15T20:00:15.366282" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:15.365904" elapsed="0.000520">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:15.366647" 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-15T20:00:15.365535" elapsed="0.001138"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:00:15.366915" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:00:15.366775" elapsed="0.000200"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:15.366728" elapsed="0.000270"/>
</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-15T20:00:15.367146" 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-15T20:00:15.367317" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:00:15.367382" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:00:15.369449" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:15.365200" elapsed="0.004276"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.370999" 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-15T20:00:15.370658" elapsed="0.000387"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:15.371464" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:15.371200" elapsed="0.000308"/>
</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-15T20:00:15.378378" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.373620" elapsed="0.006534">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:15.371574" elapsed="0.008669">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.380444" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:15.380277" elapsed="0.000233"/>
</branch>
<status status="FAIL" start="2026-04-15T20:00:15.371557" elapsed="0.008976">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.381079" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:15.381213" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:00:15.381177" elapsed="0.000076"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:15.381160" elapsed="0.000114"/>
</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-15T20:00:15.381418" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:00:15.381521" 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-15T20:00:15.369840" elapsed="0.011794">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.381712" 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-15T20:00:15.225996" elapsed="0.155832">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.382099" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:15.381922" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:15.381906" elapsed="0.000287"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:15.382224" 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-15T20:00:15.219890" elapsed="0.162432">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.214773" elapsed="0.167615">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.214611" elapsed="0.167836">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.212145" elapsed="0.170394">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:15.211890" elapsed="0.170704">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:00:15.211874" elapsed="0.170756">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:15.382973" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:15.382694" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:15.382679" elapsed="0.000374"/>
</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-15T20:00:15.210806" elapsed="0.172324">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.398877" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:25.398502" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:25.398478" 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-15T20:00:25.400598" 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-15T20:00:25.400130" elapsed="0.000497"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.401196" 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-15T20:00:25.400880" elapsed="0.000343"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:00:25.401274" elapsed="0.000294"/>
</return>
<msg time="2026-04-15T20:00:25.401707" 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-15T20:00:25.399678" elapsed="0.002068"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.402821" 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-15T20:00:25.402499" elapsed="0.000349"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:00:25.402894" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:00:25.403042" 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-15T20:00:25.402146" 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-15T20:00:25.494072" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:25.493368" elapsed="0.000804"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:00:25.496167" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:25.495889" elapsed="0.000359">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:25.496442" 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-15T20:00:25.495389" elapsed="0.001147"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.498180" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:25.497503" elapsed="0.000773"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:00:25.499801" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:00:25.500058" 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-15T20:00:25.499472" elapsed="0.000680"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.501488" 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-15T20:00:25.501094" 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-15T20:00:25.503224" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:25.502951" elapsed="0.000318"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.503714" 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-15T20:00:25.503435" 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-15T20:00:25.504087" elapsed="0.000173"/>
</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-15T20:00:25.504452" 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-15T20:00:25.504632" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:00:25.503950" elapsed="0.000738"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:00:25.503808" elapsed="0.000913"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:00:25.504785" elapsed="0.000032"/>
</return>
<msg time="2026-04-15T20:00:25.505005" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:00:25.502395" elapsed="0.002668"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:25.501791" elapsed="0.003314"/>
</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-15T20:00:25.505428" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:25.505161" elapsed="0.000344"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:25.501724" elapsed="0.003834"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.507429" 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-15T20:00:25.506526" elapsed="0.001038"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:00:25.507650" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:00:25.491236" elapsed="0.016755"/>
</kw>
<msg time="2026-04-15T20:00:25.508258" 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-15T20:00:25.440580" elapsed="0.067732"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:25.520597" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:25.532743" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:25.544785" 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-15T20:00:25.544980" 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-15T20:00:25.545154" 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-15T20:00:25.545564" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:25.545417" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:25.545403" 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-15T20:00:25.545935" 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-15T20:00:25.546104" 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-15T20:00:25.546270" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:00:25.545372" elapsed="0.000951"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:00:25.545228" elapsed="0.001121"/>
</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-15T20:00:25.546496" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:25.546572" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:00:25.546688" 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-15T20:00:25.436420" elapsed="0.110293"/>
</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-15T20:00:25.548228" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:25.547777" elapsed="0.000597">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:25.548584" 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-15T20:00:25.547418" elapsed="0.001191"/>
</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-15T20:00:25.548948" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:25.548682" elapsed="0.000324"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.549765" 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-15T20:00:25.549232" elapsed="0.000561"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:25.549030" elapsed="0.000800"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:25.548664" elapsed="0.001187"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.552255" 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-15T20:00:25.550012" elapsed="0.002270"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:00:25.552334" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:25.552487" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:25.547091" elapsed="0.005421"/>
</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-15T20:00:25.554048" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:25.553625" elapsed="0.000563">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:25.554399" 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-15T20:00:25.553197" elapsed="0.001227"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:00:25.554631" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:00:25.554496" elapsed="0.000193"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:25.554478" elapsed="0.000235"/>
</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-15T20:00:25.554879" 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-15T20:00:25.555053" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:00:25.555118" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:00:25.557153" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:25.552844" elapsed="0.004335"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.558648" 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-15T20:00:25.558375" elapsed="0.000320"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:25.559187" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:25.558920" elapsed="0.000311"/>
</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-15T20:00:25.565623" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.561325" elapsed="0.006253">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:25.559298" elapsed="0.008402">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.567985" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:25.567770" elapsed="0.000306"/>
</branch>
<status status="FAIL" start="2026-04-15T20:00:25.559280" elapsed="0.008829">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.568925" elapsed="0.000040"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:25.569114" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:00:25.569065" elapsed="0.000106"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:25.569041" elapsed="0.000159"/>
</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-15T20:00:25.569402" elapsed="0.000030"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:00:25.569498" elapsed="0.000020"/>
</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-15T20:00:25.557528" elapsed="0.012120">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.569790" 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-15T20:00:25.414619" elapsed="0.155315">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.570313" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:25.570070" elapsed="0.000343"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:25.570047" elapsed="0.000397"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:25.570488" 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-15T20:00:25.408637" elapsed="0.161987">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.401962" elapsed="0.168753">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.401812" elapsed="0.169071">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.399291" elapsed="0.171725">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:25.399034" elapsed="0.172058">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:00:25.399019" elapsed="0.172116">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:25.571530" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:25.571226" elapsed="0.000381"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:25.571205" elapsed="0.000434"/>
</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-15T20:00:25.397983" elapsed="0.173783">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.588097" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:35.587716" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:35.587690" elapsed="0.000515"/>
</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-15T20:00:35.589881" 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-15T20:00:35.589369" elapsed="0.000541"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.590414" 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-15T20:00:35.590093" elapsed="0.000348"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:00:35.590492" elapsed="0.000303"/>
</return>
<msg time="2026-04-15T20:00:35.590951" 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-15T20:00:35.588937" elapsed="0.002044"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.592056" 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-15T20:00:35.591722" elapsed="0.000361"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:00:35.592130" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:35.592278" 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-15T20:00:35.591369" elapsed="0.000934"/>
</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-15T20:00:35.681340" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:35.680361" elapsed="0.001078"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:00:35.683277" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:35.682984" elapsed="0.000377">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:35.683563" 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-15T20:00:35.682447" elapsed="0.001214"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.685359" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:35.684666" elapsed="0.000792"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:00:35.686834" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:00:35.687368" 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-15T20:00:35.686468" elapsed="0.001000"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.688868" 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-15T20:00:35.688447" 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-15T20:00:35.690388" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:35.690108" elapsed="0.000326"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.691116" 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-15T20:00:35.690601" elapsed="0.000542"/>
</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-15T20:00:35.691705" elapsed="0.000040"/>
</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-15T20:00:35.691938" 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-15T20:00:35.692119" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:00:35.691332" elapsed="0.000844"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:00:35.691192" elapsed="0.001014"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:00:35.692311" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:00:35.692509" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:00:35.689707" elapsed="0.002852"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:35.689127" elapsed="0.003474"/>
</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-15T20:00:35.692950" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:35.692658" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:35.689075" elapsed="0.004009"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.694846" 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-15T20:00:35.694039" elapsed="0.000919"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:00:35.695045" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:00:35.678211" elapsed="0.017132"/>
</kw>
<msg time="2026-04-15T20:00:35.695606" 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-15T20:00:35.628291" elapsed="0.067372"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:35.708010" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:35.720066" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:35.732196" 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-15T20:00:35.732399" 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-15T20:00:35.732577" 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-15T20:00:35.733030" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:35.732872" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:35.732857" elapsed="0.000357"/>
</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-15T20:00:35.733361" 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-15T20:00:35.733531" 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-15T20:00:35.733699" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:00:35.732825" elapsed="0.000944"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:00:35.732650" 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-15T20:00:35.733951" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:35.734032" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:00:35.734149" 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-15T20:00:35.624077" elapsed="0.110097"/>
</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-15T20:00:35.735682" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:35.735301" elapsed="0.000538">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:35.736059" 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-15T20:00:35.734927" 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-15T20:00:35.736408" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:35.736159" elapsed="0.000307"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.737214" 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-15T20:00:35.736692" elapsed="0.000549"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:35.736490" elapsed="0.000788"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:35.736141" elapsed="0.001159"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.739748" 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-15T20:00:35.737453" elapsed="0.002323"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:00:35.739829" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:00:35.739985" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:35.734578" elapsed="0.005432"/>
</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-15T20:00:35.741412" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:35.741022" elapsed="0.000532">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:35.741794" 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-15T20:00:35.740652" elapsed="0.001168"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:00:35.742033" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:00:35.741896" elapsed="0.000204"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:35.741876" 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-15T20:00:35.742277" 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-15T20:00:35.742451" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:00:35.742517" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:00:35.746449" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:35.740324" elapsed="0.006153"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.748009" 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-15T20:00:35.747714" elapsed="0.000342"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:35.748499" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:35.748224" elapsed="0.000320"/>
</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-15T20:00:35.754931" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.750685" elapsed="0.006255">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:35.748612" elapsed="0.008453">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.757404" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:35.757162" elapsed="0.000338"/>
</branch>
<status status="FAIL" start="2026-04-15T20:00:35.748594" elapsed="0.008939">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.758287" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:35.758490" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:00:35.758438" elapsed="0.000111"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:35.758413" elapsed="0.000165"/>
</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-15T20:00:35.758835" elapsed="0.000031"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:00:35.758938" 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-15T20:00:35.746839" elapsed="0.012270">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.759219" 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-15T20:00:35.602082" elapsed="0.157286">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.759774" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:35.759506" elapsed="0.000373"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:35.759482" elapsed="0.000429"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:35.759956" 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-15T20:00:35.596146" elapsed="0.163950">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.591197" elapsed="0.168992">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.591043" elapsed="0.169229">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.588521" elapsed="0.171892">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:35.588263" elapsed="0.172232">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:00:35.588247" elapsed="0.172291">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:35.760955" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:35.760632" elapsed="0.000447"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:35.760609" elapsed="0.000509"/>
</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-15T20:00:35.587120" elapsed="0.174108">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.777323" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:45.776798" elapsed="0.000636"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:45.776762" elapsed="0.000712"/>
</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-15T20:00:45.779924" 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-15T20:00:45.779208" elapsed="0.000756"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.780682" 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-15T20:00:45.780199" elapsed="0.000520"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:00:45.780812" elapsed="0.000054"/>
</return>
<msg time="2026-04-15T20:00:45.781051" 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-15T20:00:45.778553" elapsed="0.002533"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.782618" 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-15T20:00:45.782307" elapsed="0.000338"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:00:45.782694" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:45.782863" 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-15T20:00:45.781939" elapsed="0.000949"/>
</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-15T20:00:45.872532" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:45.871854" elapsed="0.000782"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:00:45.874433" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:45.874155" elapsed="0.000362">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:45.874727" 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-15T20:00:45.873632" elapsed="0.001344"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.876670" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:45.875961" elapsed="0.000826"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:00:45.878085" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:00:45.878365" 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-15T20:00:45.877764" elapsed="0.000701"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.880065" 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-15T20:00:45.879642" elapsed="0.000534"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.881602" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:45.881333" elapsed="0.000322"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.882126" 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-15T20:00:45.881842" 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-15T20:00:45.882486" elapsed="0.000083"/>
</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-15T20:00:45.882942" 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-15T20:00:45.883126" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:00:45.882346" elapsed="0.000839"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:00:45.882204" elapsed="0.001015"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:00:45.883264" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:00:45.883452" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:00:45.880951" elapsed="0.002550"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:45.880328" elapsed="0.003218"/>
</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-15T20:00:45.883909" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:45.883607" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:45.880276" elapsed="0.003773"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.885785" 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-15T20:00:45.885032" elapsed="0.000854"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:00:45.885973" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:00:45.869435" elapsed="0.016841"/>
</kw>
<msg time="2026-04-15T20:00:45.886535" 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-15T20:00:45.819114" elapsed="0.067479"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:45.899432" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:45.911633" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:45.923850" 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-15T20:00:45.924050" 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-15T20:00:45.924232" 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-15T20:00:45.924683" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:45.924532" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:45.924517" elapsed="0.000381"/>
</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-15T20:00:45.925047" 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-15T20:00:45.925220" 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-15T20:00:45.925398" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:00:45.924484" elapsed="0.001001"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:00:45.924311" 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-15T20:00:45.925665" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:45.925759" elapsed="0.000017"/>
</return>
<msg time="2026-04-15T20:00:45.925882" 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-15T20:00:45.814912" elapsed="0.110998"/>
</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-15T20:00:45.927387" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:45.926983" elapsed="0.000550">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:45.927762" 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-15T20:00:45.926618" elapsed="0.001171"/>
</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-15T20:00:45.928119" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:45.927862" elapsed="0.000315"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.928960" 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-15T20:00:45.928436" elapsed="0.000552"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:45.928201" elapsed="0.000824"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:45.927843" elapsed="0.001204"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.931483" 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-15T20:00:45.929202" elapsed="0.002309"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:00:45.931563" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:00:45.931717" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:45.926282" elapsed="0.005477"/>
</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-15T20:00:45.933189" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:45.932804" elapsed="0.000531">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:45.933562" 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-15T20:00:45.932439" elapsed="0.001149"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:00:45.933828" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:00:45.933663" elapsed="0.000224"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:45.933644" elapsed="0.000267"/>
</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-15T20:00:45.934062" 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-15T20:00:45.934239" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:00:45.934305" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:00:45.936357" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:45.932075" elapsed="0.004310"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.937968" 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-15T20:00:45.937620" elapsed="0.000395"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:45.938439" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:45.938172" elapsed="0.000319"/>
</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-15T20:00:45.945024" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.940633" elapsed="0.006159">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:45.938561" elapsed="0.008320">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.947075" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:45.946917" elapsed="0.000249"/>
</branch>
<status status="FAIL" start="2026-04-15T20:00:45.938542" elapsed="0.008660">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.947817" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:45.947957" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:00:45.947921" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:45.947902" 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-15T20:00:45.948168" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:00:45.948239" 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-15T20:00:45.936796" elapsed="0.011554">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.948458" elapsed="0.000020"/>
</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-15T20:00:45.792757" elapsed="0.155813">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.948871" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:45.948675" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:45.948657" elapsed="0.000312"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:45.949002" 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-15T20:00:45.786719" elapsed="0.162383">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.781390" elapsed="0.167780">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.781167" elapsed="0.168062">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.777969" elapsed="0.171354">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:45.777558" elapsed="0.171854">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:00:45.777536" elapsed="0.171915">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:45.949966" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:45.949538" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:45.949515" elapsed="0.000605"/>
</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-15T20:00:45.775999" elapsed="0.174259">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:55.967622" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:55.967067" elapsed="0.000753"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:55.967026" elapsed="0.000856"/>
</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-15T20:00:55.970084" 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-15T20:00:55.969545" elapsed="0.000575"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:00:55.970940" 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-15T20:00:55.970305" elapsed="0.000663"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:00:55.971019" elapsed="0.000040"/>
</return>
<msg time="2026-04-15T20:00:55.971193" 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-15T20:00:55.969041" elapsed="0.002177"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:55.972294" 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-15T20:00:55.971990" elapsed="0.000331"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:00:55.972368" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:55.972517" 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-15T20:00:55.971596" elapsed="0.000946"/>
</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-15T20:00:56.060742" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:56.060117" elapsed="0.000726"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:00:56.062583" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:56.062321" elapsed="0.000338">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:56.063090" 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-15T20:00:56.061837" elapsed="0.001348"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.064979" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:56.064204" elapsed="0.000873"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:00:56.066593" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:00:56.067086" 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-15T20:00:56.066283" elapsed="0.000951"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.068610" 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-15T20:00:56.068213" elapsed="0.000503"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.070126" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:56.069856" elapsed="0.000314"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.070604" 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-15T20:00:56.070335" elapsed="0.000295"/>
</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-15T20:00:56.071244" 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-15T20:00:56.071452" 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-15T20:00:56.071632" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:00:56.070961" elapsed="0.000729"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:00:56.070677" elapsed="0.001043"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:00:56.071785" elapsed="0.000051"/>
</return>
<msg time="2026-04-15T20:00:56.071994" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:00:56.069439" elapsed="0.002603"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:56.068879" elapsed="0.003204"/>
</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-15T20:00:56.072410" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:56.072141" elapsed="0.000349"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:56.068827" elapsed="0.003717"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.074209" 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-15T20:00:56.073487" elapsed="0.000819"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:00:56.074391" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:00:56.058010" elapsed="0.016674"/>
</kw>
<msg time="2026-04-15T20:00:56.075001" 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-15T20:00:56.008199" elapsed="0.066857"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:56.087377" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:56.099404" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:00:56.111415" elapsed="0.000027"/>
</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-15T20:00:56.111611" 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-15T20:00:56.111803" 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-15T20:00:56.112294" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:56.112148" elapsed="0.000300"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:56.112133" elapsed="0.000341"/>
</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-15T20:00:56.112619" 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-15T20:00:56.112816" 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-15T20:00:56.112988" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:00:56.112101" elapsed="0.000942"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:00:56.111937" elapsed="0.001132"/>
</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-15T20:00:56.113216" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:56.113295" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:00:56.113412" 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-15T20:00:56.004038" elapsed="0.109399"/>
</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-15T20:00:56.114896" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:56.114502" elapsed="0.000548">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:56.115257" 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-15T20:00:56.114159" elapsed="0.001123"/>
</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-15T20:00:56.115605" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:56.115356" elapsed="0.000307"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.116461" 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-15T20:00:56.115964" elapsed="0.000524"/>
</kw>
<status status="PASS" start="2026-04-15T20:00:56.115687" elapsed="0.000837"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:56.115337" elapsed="0.001208"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.118969" 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-15T20:00:56.116697" elapsed="0.002298"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:00:56.119047" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:00:56.119201" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:56.113829" elapsed="0.005397"/>
</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-15T20:00:56.120638" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:56.120237" elapsed="0.000558">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:00:56.121004" 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-15T20:00:56.119895" elapsed="0.001134"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:00:56.121237" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:00:56.121102" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-15T20:00:56.121084" elapsed="0.000236"/>
</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-15T20:00:56.121467" 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-15T20:00:56.121639" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:00:56.121706" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:00:56.123863" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:00:56.119531" elapsed="0.004360"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.125354" 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-15T20:00:56.125083" elapsed="0.000318"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:00:56.125884" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:00:56.125557" elapsed="0.000372"/>
</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-15T20:00:56.131877" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:56.128074" elapsed="0.005495">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:56.125998" elapsed="0.007659">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:56.133893" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:56.133690" elapsed="0.000270"/>
</branch>
<status status="FAIL" start="2026-04-15T20:00:56.125980" elapsed="0.008004">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:56.134493" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:56.134628" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:00:56.134593" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:56.134575" elapsed="0.000115"/>
</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-15T20:00:56.134852" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:00:56.134925" 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-15T20:00:56.124240" elapsed="0.010793">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:56.135111" 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-15T20:00:55.982317" elapsed="0.152891">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:56.135476" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:56.135302" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:56.135286" elapsed="0.000290"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:00:56.135609" 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-15T20:00:55.976400" elapsed="0.159306">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:55.971423" elapsed="0.164400">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:55.971276" elapsed="0.164633">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:55.968398" elapsed="0.167608">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:00:55.967973" elapsed="0.168087">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:00:55.967949" elapsed="0.168148">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:00:56.136383" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:00:56.136165" elapsed="0.000274"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:00:56.136149" elapsed="0.000314"/>
</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-15T20:00:55.966236" elapsed="0.170304">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.152333" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:06.151967" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:06.151939" elapsed="0.000520"/>
</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-15T20:01:06.154168" 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-15T20:01:06.153653" elapsed="0.000548"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.154704" 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-15T20:01:06.154372" elapsed="0.000382"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:01:06.154807" elapsed="0.000311"/>
</return>
<msg time="2026-04-15T20:01:06.155260" 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-15T20:01:06.153203" elapsed="0.002084"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.156373" 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-15T20:01:06.156063" elapsed="0.000337"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:01:06.156447" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:01:06.156607" 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-15T20:01:06.155680" elapsed="0.000954"/>
</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-15T20:01:06.245880" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:06.245213" elapsed="0.000769"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:01:06.248021" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:06.247747" elapsed="0.000353">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:06.248296" 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-15T20:01:06.247231" elapsed="0.001226"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.250176" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:06.249448" elapsed="0.000829"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:01:06.251593" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:01:06.252051" 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-15T20:01:06.251269" elapsed="0.000878"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.253516" 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-15T20:01:06.253107" elapsed="0.000518"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.255235" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:06.254956" elapsed="0.000327"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.255728" 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-15T20:01:06.255449" elapsed="0.000323"/>
</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-15T20:01:06.256115" 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-15T20:01:06.256472" 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-15T20:01:06.256654" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:01:06.255975" elapsed="0.000739"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:01:06.255820" elapsed="0.000942"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:01:06.256808" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:01:06.257002" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:01:06.254407" elapsed="0.002645"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:06.253807" elapsed="0.003289"/>
</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-15T20:01:06.257430" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:06.257155" elapsed="0.000357"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:06.253724" elapsed="0.003843"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.259633" 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-15T20:01:06.258703" elapsed="0.001043"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:01:06.259836" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:01:06.243073" elapsed="0.017079"/>
</kw>
<msg time="2026-04-15T20:01:06.260408" 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-15T20:01:06.192683" elapsed="0.067780"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:06.272815" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:06.285064" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:06.297224" 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-15T20:01:06.297425" 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-15T20:01:06.297617" 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-15T20:01:06.298053" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:06.297903" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:06.297888" elapsed="0.000381"/>
</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-15T20:01:06.298421" 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-15T20:01:06.298606" 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-15T20:01:06.298806" elapsed="0.000024"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:01:06.297855" elapsed="0.001011"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:01:06.297695" elapsed="0.001198"/>
</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-15T20:01:06.299046" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:06.299129" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:01:06.299247" 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-15T20:01:06.188514" elapsed="0.110760"/>
</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-15T20:01:06.300761" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:06.300348" elapsed="0.000565">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:06.301125" 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-15T20:01:06.299998" elapsed="0.001153"/>
</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-15T20:01:06.301475" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:06.301226" elapsed="0.000319"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.302333" 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-15T20:01:06.301800" elapsed="0.000561"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:06.301571" elapsed="0.000828"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:06.301207" elapsed="0.001214"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.304881" 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-15T20:01:06.302589" elapsed="0.002319"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:01:06.304962" elapsed="0.000037"/>
</return>
<msg time="2026-04-15T20:01:06.305123" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:06.299646" elapsed="0.005502"/>
</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-15T20:01:06.306579" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:06.306190" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:06.306971" 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-15T20:01:06.305815" elapsed="0.001218"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:01:06.307250" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-15T20:01:06.307111" elapsed="0.000199"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:06.307092" 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-15T20:01:06.307484" 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-15T20:01:06.307669" elapsed="0.000023"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:01:06.307800" elapsed="0.000017"/>
</return>
<msg time="2026-04-15T20:01:06.309857" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:06.305459" elapsed="0.004426"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.311387" 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-15T20:01:06.311105" elapsed="0.000329"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:06.311913" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:06.311591" elapsed="0.000368"/>
</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-15T20:01:06.317520" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.314064" elapsed="0.005288">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:06.312028" elapsed="0.007415">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.319632" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:06.319477" elapsed="0.000222"/>
</branch>
<status status="FAIL" start="2026-04-15T20:01:06.312009" elapsed="0.007713">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.320288" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:06.320425" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:01:06.320389" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:06.320372" elapsed="0.000116"/>
</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-15T20:01:06.320633" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:01:06.320703" 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-15T20:01:06.310254" elapsed="0.010584">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.320918" 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-15T20:01:06.166515" elapsed="0.154503">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.321297" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:06.321113" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:06.321097" elapsed="0.000333"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:06.321464" 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-15T20:01:06.160507" elapsed="0.161059">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.155501" elapsed="0.166135">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.155345" elapsed="0.166351">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.152802" elapsed="0.169014">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:06.152520" elapsed="0.169357">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:01:06.152504" elapsed="0.169406">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:06.322231" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:06.321979" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:06.321963" elapsed="0.000353"/>
</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-15T20:01:06.151384" elapsed="0.171013">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.337577" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:16.337227" elapsed="0.000428"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:16.337202" elapsed="0.000481"/>
</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-15T20:01:16.339340" 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-15T20:01:16.338849" elapsed="0.000522"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.339867" 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-15T20:01:16.339538" elapsed="0.000355"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:01:16.339943" elapsed="0.000273"/>
</return>
<msg time="2026-04-15T20:01:16.340353" 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-15T20:01:16.338406" elapsed="0.001973"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.341425" 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-15T20:01:16.341121" elapsed="0.000331"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:01:16.341498" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:01:16.341646" 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-15T20:01:16.340770" elapsed="0.000901"/>
</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-15T20:01:16.429887" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:16.429250" elapsed="0.000735"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:01:16.431720" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:16.431440" elapsed="0.000376">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:16.432008" 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-15T20:01:16.430946" elapsed="0.001157"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.433993" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:16.433333" elapsed="0.000755"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:01:16.435351" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:01:16.435651" 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-15T20:01:16.435038" elapsed="0.000726"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.437310" 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-15T20:01:16.436693" elapsed="0.000722"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.438783" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:16.438503" elapsed="0.000326"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.439266" 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-15T20:01:16.438993" elapsed="0.000299"/>
</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-15T20:01:16.439625" elapsed="0.000179"/>
</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-15T20:01:16.439996" 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-15T20:01:16.440174" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:01:16.439489" elapsed="0.000742"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:01:16.439340" elapsed="0.000921"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:01:16.440304" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:01:16.440484" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:01:16.438132" elapsed="0.002401"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:16.437561" elapsed="0.003013"/>
</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-15T20:01:16.441070" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:16.440630" elapsed="0.000521"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:16.437510" elapsed="0.003693"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.442861" 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-15T20:01:16.442140" elapsed="0.000818"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:01:16.443042" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:01:16.426880" elapsed="0.016455"/>
</kw>
<msg time="2026-04-15T20:01:16.443611" 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-15T20:01:16.377016" elapsed="0.066653"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:16.455922" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:16.467830" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:16.479664" elapsed="0.000026"/>
</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-15T20:01:16.479871" elapsed="0.000021"/>
</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-15T20:01:16.480047" 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-15T20:01:16.480457" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:16.480307" elapsed="0.000301"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:16.480293" elapsed="0.000341"/>
</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-15T20:01:16.480798" 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-15T20:01:16.480968" 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-15T20:01:16.481133" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:01:16.480262" elapsed="0.000923"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:01:16.480122" elapsed="0.001088"/>
</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-15T20:01:16.481354" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:16.481430" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:16.481544" 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-15T20:01:16.372796" elapsed="0.108774"/>
</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-15T20:01:16.483008" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:16.482608" elapsed="0.000539">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:16.483355" 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-15T20:01:16.482268" elapsed="0.001112"/>
</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-15T20:01:16.483721" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:16.483474" elapsed="0.000323"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.484511" 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-15T20:01:16.484017" elapsed="0.000520"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:16.483821" elapsed="0.000752"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:16.483456" elapsed="0.001138"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.486981" 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-15T20:01:16.484760" elapsed="0.002248"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:01:16.487059" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:01:16.487210" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:16.481943" elapsed="0.005291"/>
</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-15T20:01:16.488637" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:16.488259" elapsed="0.000532">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:16.489000" 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-15T20:01:16.487922" elapsed="0.001104"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:01:16.489234" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:01:16.489098" elapsed="0.000195"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:16.489080" elapsed="0.000236"/>
</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-15T20:01:16.489461" 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-15T20:01:16.489634" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:01:16.489699" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:16.493440" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:16.487581" elapsed="0.005887"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.494977" 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-15T20:01:16.494686" elapsed="0.000338"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:16.495463" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:16.495184" 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-15T20:01:16.501419" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.497588" elapsed="0.005555">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:16.495576" elapsed="0.007655">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.503436" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:16.503265" elapsed="0.000238"/>
</branch>
<status status="FAIL" start="2026-04-15T20:01:16.495559" elapsed="0.007970">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.504051" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:16.504184" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:01:16.504149" elapsed="0.000075"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:16.504132" elapsed="0.000113"/>
</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-15T20:01:16.504387" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:01:16.504457" 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-15T20:01:16.493873" elapsed="0.010689">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.504636" 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-15T20:01:16.351360" elapsed="0.153387">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.505054" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:16.504878" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:16.504861" elapsed="0.000287"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:16.505179" 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-15T20:01:16.345483" elapsed="0.159793">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.340583" elapsed="0.164759">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.340437" elapsed="0.164962">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.338014" elapsed="0.167476">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:16.337753" elapsed="0.167791">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:01:16.337723" elapsed="0.167852">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:16.505895" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:16.505639" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:16.505623" elapsed="0.000351"/>
</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-15T20:01:16.336694" elapsed="0.169357">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.522338" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:26.521986" elapsed="0.000428"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:26.521961" elapsed="0.000479"/>
</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-15T20:01:26.524076" 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-15T20:01:26.523593" elapsed="0.000512"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.524580" 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-15T20:01:26.524273" elapsed="0.000350"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:01:26.524679" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T20:01:26.524862" 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-15T20:01:26.523160" elapsed="0.001728"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.526201" 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-15T20:01:26.525888" elapsed="0.000405"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:01:26.526343" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:01:26.526495" 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-15T20:01:26.525514" 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-15T20:01:26.614977" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:26.614340" elapsed="0.000735"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:01:26.617109" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:26.616540" elapsed="0.000655">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:26.617396" 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-15T20:01:26.616051" elapsed="0.001440"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.619161" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:26.618459" elapsed="0.000799"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:01:26.620519" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:01:26.621047" 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-15T20:01:26.620208" elapsed="0.000934"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.622476" 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-15T20:01:26.622081" elapsed="0.000501"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.623982" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:26.623701" elapsed="0.000327"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.624466" 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-15T20:01:26.624191" elapsed="0.000302"/>
</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-15T20:01:26.625037" 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-15T20:01:26.625247" 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-15T20:01:26.625426" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:01:26.624716" elapsed="0.000767"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:01:26.624545" elapsed="0.000970"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:01:26.625559" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:01:26.625764" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:01:26.623324" elapsed="0.002490"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:26.622755" elapsed="0.003103"/>
</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-15T20:01:26.626185" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:26.625916" elapsed="0.000349"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:26.622686" elapsed="0.003632"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.627988" 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-15T20:01:26.627261" elapsed="0.000824"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:01:26.628168" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:01:26.611992" elapsed="0.016467"/>
</kw>
<msg time="2026-04-15T20:01:26.628905" 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-15T20:01:26.562558" elapsed="0.066469"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:26.641668" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:26.653727" elapsed="0.000040"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:26.665774" 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-15T20:01:26.665975" 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-15T20:01:26.666155" 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-15T20:01:26.666566" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:26.666419" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:26.666404" 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-15T20:01:26.666919" 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-15T20:01:26.667089" 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-15T20:01:26.667255" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:01:26.666373" elapsed="0.000935"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:01:26.666230" elapsed="0.001104"/>
</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-15T20:01:26.667480" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:26.667556" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:26.667671" 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-15T20:01:26.558366" elapsed="0.109330"/>
</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-15T20:01:26.669198" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:26.668818" elapsed="0.000518">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:26.669543" 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-15T20:01:26.668440" elapsed="0.001128"/>
</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-15T20:01:26.669904" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:26.669641" elapsed="0.000320"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.670711" 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-15T20:01:26.670220" elapsed="0.000533"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:26.669985" elapsed="0.000806"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:26.669623" elapsed="0.001194"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.673249" 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-15T20:01:26.670970" elapsed="0.002305"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:01:26.673328" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:01:26.673481" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:26.668110" elapsed="0.005395"/>
</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-15T20:01:26.674888" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:26.674493" elapsed="0.000537">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:26.675238" 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-15T20:01:26.674154" elapsed="0.001110"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:01:26.675474" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:01:26.675336" elapsed="0.000197"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:26.675318" 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-15T20:01:26.675705" 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-15T20:01:26.675903" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:01:26.675970" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:26.678026" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:26.673825" elapsed="0.004228"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.679505" 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-15T20:01:26.679232" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:26.680038" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:26.679706" elapsed="0.000376"/>
</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-15T20:01:26.686289" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.682207" elapsed="0.005805">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:26.680150" elapsed="0.007951">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.688289" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:26.688136" elapsed="0.000218"/>
</branch>
<status status="FAIL" start="2026-04-15T20:01:26.680132" elapsed="0.008245">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.688929" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:26.689064" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:01:26.689028" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:26.689011" elapsed="0.000115"/>
</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-15T20:01:26.689270" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:01:26.689374" elapsed="0.000017"/>
</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-15T20:01:26.678398" elapsed="0.011089">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.689564" 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-15T20:01:26.536432" elapsed="0.153231">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.689954" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:26.689775" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:26.689757" elapsed="0.000292"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:26.690081" 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-15T20:01:26.530362" elapsed="0.159817">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.525092" elapsed="0.165153">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.524947" elapsed="0.165358">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.522765" elapsed="0.167637">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:26.522497" elapsed="0.167960">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:01:26.522481" elapsed="0.168008">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:26.690786" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:26.690554" elapsed="0.000289"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:26.690538" 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-15T20:01:26.521273" elapsed="0.169672">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.707636" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:36.707284" elapsed="0.000433"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:36.707257" elapsed="0.000502"/>
</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-15T20:01:36.709390" 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-15T20:01:36.708923" elapsed="0.000495"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.710006" 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-15T20:01:36.709666" elapsed="0.000368"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:01:36.710084" elapsed="0.000297"/>
</return>
<msg time="2026-04-15T20:01:36.710521" 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-15T20:01:36.708484" elapsed="0.002063"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.711601" 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-15T20:01:36.711297" elapsed="0.000331"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:01:36.711674" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:01:36.711839" 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-15T20:01:36.710943" 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-15T20:01:36.800165" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:36.799491" elapsed="0.000773"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:01:36.802316" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:36.802055" elapsed="0.000336">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:36.802584" 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-15T20:01:36.801528" elapsed="0.001150"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.804312" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:36.803647" elapsed="0.000763"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:01:36.805874" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:01:36.806149" 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-15T20:01:36.805547" elapsed="0.000698"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.807579" 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-15T20:01:36.807186" elapsed="0.000500"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.809242" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:36.808970" elapsed="0.000316"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.809722" 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-15T20:01:36.809451" elapsed="0.000312"/>
</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-15T20:01:36.810113" elapsed="0.000166"/>
</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-15T20:01:36.810470" 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-15T20:01:36.810651" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:01:36.809974" elapsed="0.000734"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:01:36.809813" elapsed="0.000940"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:01:36.810798" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:01:36.810981" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:01:36.808410" elapsed="0.002619"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:36.807850" elapsed="0.003220"/>
</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-15T20:01:36.811396" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:36.811127" elapsed="0.000347"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:36.807800" elapsed="0.003727"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.813376" 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-15T20:01:36.812509" elapsed="0.001000"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:01:36.813597" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:01:36.797392" elapsed="0.016518"/>
</kw>
<msg time="2026-04-15T20:01:36.814177" 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-15T20:01:36.747519" elapsed="0.066713"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:36.826579" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:36.838534" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:36.850547" elapsed="0.000027"/>
</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-15T20:01:36.850761" 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-15T20:01:36.850941" 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-15T20:01:36.851349" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:36.851203" elapsed="0.000300"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:36.851189" elapsed="0.000339"/>
</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-15T20:01:36.851670" 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-15T20:01:36.851863" 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-15T20:01:36.852030" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:01:36.851158" elapsed="0.000925"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:01:36.851016" elapsed="0.001093"/>
</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-15T20:01:36.852253" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:36.852330" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:36.852444" 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-15T20:01:36.743342" elapsed="0.109127"/>
</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-15T20:01:36.853953" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:36.853510" elapsed="0.000584">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:36.854302" 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-15T20:01:36.853170" 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-15T20:01:36.854655" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:36.854401" elapsed="0.000312"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.855448" 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-15T20:01:36.854956" elapsed="0.000520"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:36.854754" elapsed="0.000759"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:36.854383" elapsed="0.001151"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.858031" 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-15T20:01:36.855689" elapsed="0.002381"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:01:36.858132" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:01:36.858286" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:36.852844" elapsed="0.005467"/>
</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-15T20:01:36.859669" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:36.859292" elapsed="0.000531">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:36.860070" 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-15T20:01:36.858953" elapsed="0.001148"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:01:36.860311" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:01:36.860175" elapsed="0.000200"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:36.860157" 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-15T20:01:36.860544" 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-15T20:01:36.860717" elapsed="0.000045"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:01:36.860810" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:01:36.862870" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:36.858611" elapsed="0.004286"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.864345" 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-15T20:01:36.864071" elapsed="0.000321"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:36.864873" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:36.864546" elapsed="0.000381"/>
</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-15T20:01:36.870570" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.867108" elapsed="0.005156">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:36.865011" elapsed="0.007340">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.872540" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:36.872385" elapsed="0.000221"/>
</branch>
<status status="FAIL" start="2026-04-15T20:01:36.864988" elapsed="0.007642">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.873259" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:36.873395" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:01:36.873358" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:36.873341" 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-15T20:01:36.873603" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:01:36.873674" 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-15T20:01:36.863238" elapsed="0.010563">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.873881" 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-15T20:01:36.721609" elapsed="0.152402">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.874291" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:36.874113" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:36.874096" elapsed="0.000292"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:36.874421" 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-15T20:01:36.715691" elapsed="0.158829">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.710768" elapsed="0.163821">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.710605" elapsed="0.164044">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.708089" elapsed="0.166669">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:36.707817" elapsed="0.167000">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:01:36.707801" elapsed="0.167047">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:36.875134" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:36.874915" elapsed="0.000275"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:36.874899" elapsed="0.000314"/>
</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-15T20:01:36.706717" elapsed="0.168573">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:46.888727" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:46.888371" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:46.888345" elapsed="0.000507"/>
</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-15T20:01:46.890495" 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-15T20:01:46.890006" elapsed="0.000518"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:01:46.891026" 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-15T20:01:46.890695" elapsed="0.000358"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:01:46.891103" elapsed="0.000291"/>
</return>
<msg time="2026-04-15T20:01:46.891532" 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-15T20:01:46.889553" elapsed="0.002005"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:46.892614" 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-15T20:01:46.892309" elapsed="0.000333"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:01:46.892689" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:01:46.892858" 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-15T20:01:46.891953" elapsed="0.000930"/>
</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-15T20:01:46.980351" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:46.979717" elapsed="0.000732"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:01:46.982437" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:46.982164" elapsed="0.000362">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:46.982720" 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-15T20:01:46.981659" elapsed="0.001174"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:46.984477" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:46.983823" elapsed="0.000751"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:01:46.986101" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:01:46.986369" 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-15T20:01:46.985790" elapsed="0.000674"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:46.987831" 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-15T20:01:46.987410" 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-15T20:01:46.989482" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:46.989215" elapsed="0.000313"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:01:46.989981" 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-15T20:01:46.989692" elapsed="0.000315"/>
</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-15T20:01:46.990329" 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-15T20:01:46.990687" 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-15T20:01:46.990888" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:01:46.990192" elapsed="0.000755"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:01:46.990055" elapsed="0.000922"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:01:46.991092" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:01:46.991280" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:01:46.988652" elapsed="0.002677"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:46.988083" elapsed="0.003287"/>
</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-15T20:01:46.991722" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:46.991427" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:46.988032" elapsed="0.003850"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:01:46.993681" 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-15T20:01:46.992970" elapsed="0.000826"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:01:46.993881" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:01:46.977618" elapsed="0.016556"/>
</kw>
<msg time="2026-04-15T20:01:46.994428" 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-15T20:01:46.928072" elapsed="0.066409"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:47.006720" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:47.023738" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:47.035673" 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-15T20:01:47.035888" 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-15T20:01:47.036066" 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-15T20:01:47.036488" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:47.036342" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:47.036327" elapsed="0.000340"/>
</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-15T20:01:47.036832" 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-15T20:01:47.037004" 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-15T20:01:47.037169" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:01:47.036296" elapsed="0.000925"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:01:47.036140" elapsed="0.001107"/>
</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-15T20:01:47.037393" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:47.037468" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:47.037584" 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-15T20:01:46.923948" elapsed="0.113661"/>
</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-15T20:01:47.039120" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:47.038708" elapsed="0.000561">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:47.039484" 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-15T20:01:47.038362" elapsed="0.001148"/>
</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-15T20:01:47.039848" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:47.039582" elapsed="0.000325"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:47.040673" 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-15T20:01:47.040140" elapsed="0.000561"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:47.039931" elapsed="0.000822"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:47.039564" elapsed="0.001213"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:47.043179" 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-15T20:01:47.040935" elapsed="0.002271"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:01:47.043257" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:01:47.043410" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:47.038034" elapsed="0.005401"/>
</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-15T20:01:47.044884" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:47.044474" elapsed="0.000551">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:47.045242" 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-15T20:01:47.044077" elapsed="0.001191"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:01:47.045477" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:01:47.045340" elapsed="0.000195"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:47.045321" elapsed="0.000237"/>
</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-15T20:01:47.045703" 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-15T20:01:47.045899" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:01:47.045964" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:47.047982" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:47.043740" elapsed="0.004268"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:47.049495" 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-15T20:01:47.049220" elapsed="0.000321"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:47.050031" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:47.049697" elapsed="0.000378"/>
</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-15T20:01:47.055500" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:47.052135" elapsed="0.005075">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:47.050143" elapsed="0.007156">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:47.057523" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:47.057364" elapsed="0.000224"/>
</branch>
<status status="FAIL" start="2026-04-15T20:01:47.050125" elapsed="0.007487">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:47.058158" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:47.058297" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:01:47.058260" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:47.058242" elapsed="0.000116"/>
</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-15T20:01:47.058500" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:01:47.058569" 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-15T20:01:47.048385" elapsed="0.010292">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:47.058771" 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-15T20:01:46.902528" elapsed="0.156343">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:47.059139" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:47.058963" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:47.058947" elapsed="0.000286"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:47.059265" 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-15T20:01:46.896681" elapsed="0.162682">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:46.891780" elapsed="0.167648">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:46.891615" elapsed="0.167872">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:46.889168" elapsed="0.170410">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:46.888911" elapsed="0.170721">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:01:46.888894" elapsed="0.170769">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:47.059960" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:47.059728" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:47.059712" elapsed="0.000359"/>
</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-15T20:01:46.887825" elapsed="0.172326">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.076641" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:57.076247" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:57.076220" elapsed="0.000545"/>
</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-15T20:01:57.078517" 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-15T20:01:57.077985" elapsed="0.000562"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.079084" 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-15T20:01:57.078715" elapsed="0.000397"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:01:57.079179" elapsed="0.000291"/>
</return>
<msg time="2026-04-15T20:01:57.079704" 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-15T20:01:57.077526" elapsed="0.002224"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.080880" 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-15T20:01:57.080537" elapsed="0.000372"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:01:57.080956" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:01:57.081110" 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-15T20:01:57.080140" 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-15T20:01:57.172486" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:57.171812" elapsed="0.000774"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:01:57.174433" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:57.174151" elapsed="0.000363">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:57.174708" 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-15T20:01:57.173602" elapsed="0.001547"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.176881" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:57.176197" elapsed="0.000783"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:01:57.178331" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:01:57.178605" 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-15T20:01:57.177969" elapsed="0.000733"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.180201" 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-15T20:01:57.179713" elapsed="0.000629"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.181950" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:57.181526" elapsed="0.000471"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.182494" 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-15T20:01:57.182164" elapsed="0.000358"/>
</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-15T20:01:57.182867" elapsed="0.000269"/>
</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-15T20:01:57.183392" elapsed="0.000028"/>
</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-15T20:01:57.183580" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:01:57.182710" elapsed="0.000929"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:01:57.182573" elapsed="0.001097"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:01:57.183713" elapsed="0.000044"/>
</return>
<msg time="2026-04-15T20:01:57.183919" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:01:57.181110" elapsed="0.002860"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:57.180491" elapsed="0.003521"/>
</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-15T20:01:57.184388" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:57.184072" elapsed="0.000404"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:57.180441" elapsed="0.004092"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.186531" 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-15T20:01:57.185769" elapsed="0.000864"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:01:57.186721" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:01:57.169301" elapsed="0.017744"/>
</kw>
<msg time="2026-04-15T20:01:57.187305" 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-15T20:01:57.117502" elapsed="0.069916"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:57.199772" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:57.211631" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:01:57.223498" 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-15T20:01:57.223694" 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-15T20:01:57.223886" 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-15T20:01:57.224293" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:57.224148" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:57.224133" elapsed="0.000339"/>
</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-15T20:01:57.224622" 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-15T20:01:57.224818" 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-15T20:01:57.224986" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:01:57.224102" elapsed="0.000970"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:01:57.223961" elapsed="0.001140"/>
</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-15T20:01:57.225248" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:57.225330" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:01:57.225444" 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-15T20:01:57.113259" elapsed="0.112211"/>
</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-15T20:01:57.226914" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:57.226516" elapsed="0.000538">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:57.227262" 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-15T20:01:57.226171" elapsed="0.001116"/>
</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-15T20:01:57.227641" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:57.227360" elapsed="0.000338"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.228434" 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-15T20:01:57.227937" elapsed="0.000524"/>
</kw>
<status status="PASS" start="2026-04-15T20:01:57.227722" elapsed="0.000776"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:57.227342" elapsed="0.001177"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.230906" 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-15T20:01:57.228669" elapsed="0.002264"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:01:57.230985" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:01:57.231136" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:57.225845" elapsed="0.005315"/>
</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-15T20:01:57.232537" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:57.232161" elapsed="0.000515">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:01:57.232903" 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-15T20:01:57.231815" elapsed="0.001113"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:01:57.233136" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:01:57.233000" elapsed="0.000199"/>
</branch>
<status status="PASS" start="2026-04-15T20:01:57.232982" 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-15T20:01:57.233371" 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-15T20:01:57.233543" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:01:57.233614" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:01:57.237391" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:01:57.231465" elapsed="0.005954"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.238929" 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-15T20:01:57.238632" elapsed="0.000343"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:01:57.239392" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:01:57.239128" elapsed="0.000308"/>
</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-15T20:01:57.245414" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.241524" elapsed="0.005634">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:57.239518" elapsed="0.007726">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.247428" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:57.247277" elapsed="0.000217"/>
</branch>
<status status="FAIL" start="2026-04-15T20:01:57.239485" elapsed="0.008032">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.248066" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:57.248200" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:01:57.248164" elapsed="0.000076"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:57.248147" elapsed="0.000114"/>
</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-15T20:01:57.248403" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:01:57.248471" 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-15T20:01:57.237819" elapsed="0.010763">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.248657" 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-15T20:01:57.091146" elapsed="0.157626">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.249040" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:57.248867" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:57.248850" elapsed="0.000283"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:01:57.249165" 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-15T20:01:57.085059" elapsed="0.164203">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.079964" elapsed="0.169363">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.079814" elapsed="0.169569">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.077087" elapsed="0.172387">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:01:57.076824" elapsed="0.172736">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:01:57.076808" elapsed="0.172789">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:01:57.249920" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:01:57.249663" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:01:57.249648" elapsed="0.000354"/>
</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-15T20:01:57.075652" elapsed="0.174426">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.266225" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:07.265876" elapsed="0.000423"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:07.265852" elapsed="0.000473"/>
</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-15T20:02:07.267955" 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-15T20:02:07.267465" elapsed="0.000519"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.268462" 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-15T20:02:07.268150" elapsed="0.000339"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:02:07.268539" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T20:02:07.268705" 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-15T20:02:07.267041" elapsed="0.001704"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.270063" 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-15T20:02:07.269759" elapsed="0.000331"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:02:07.270136" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:02:07.270284" 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-15T20:02:07.269377" elapsed="0.000931"/>
</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-15T20:02:07.359070" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:07.358404" elapsed="0.000767"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:02:07.360932" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:07.360646" elapsed="0.000361">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:07.361201" 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-15T20:02:07.360152" elapsed="0.001144"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.363180" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:07.362293" elapsed="0.000983"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:02:07.364540" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:02:07.364825" 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-15T20:02:07.364228" elapsed="0.000748"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.366334" 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-15T20:02:07.365938" elapsed="0.000502"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.368035" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:07.367583" elapsed="0.000497"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.368518" 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-15T20:02:07.368245" elapsed="0.000299"/>
</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-15T20:02:07.368892" 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-15T20:02:07.369098" 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-15T20:02:07.369274" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:02:07.368752" elapsed="0.000579"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:02:07.368596" elapsed="0.000767"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:02:07.369408" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:02:07.369592" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:02:07.367207" elapsed="0.002433"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:07.366596" elapsed="0.003092"/>
</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-15T20:02:07.370064" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:07.369789" elapsed="0.000358"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:07.366544" elapsed="0.003656"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.371869" 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-15T20:02:07.371144" elapsed="0.000823"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:02:07.372050" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:02:07.355568" elapsed="0.016775"/>
</kw>
<msg time="2026-04-15T20:02:07.372598" 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-15T20:02:07.305794" elapsed="0.066860"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:07.385321" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:07.397402" elapsed="0.000027"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:07.409412" 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-15T20:02:07.409611" 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-15T20:02:07.409826" 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-15T20:02:07.410281" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:07.410134" elapsed="0.000300"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:07.410119" elapsed="0.000342"/>
</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-15T20:02:07.410605" 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-15T20:02:07.410796" 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-15T20:02:07.410993" elapsed="0.000023"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:02:07.410086" elapsed="0.000963"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:02:07.409940" elapsed="0.001135"/>
</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-15T20:02:07.411224" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:07.411300" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:02:07.411420" 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-15T20:02:07.301599" elapsed="0.109846"/>
</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-15T20:02:07.412930" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:07.412502" elapsed="0.000569">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:07.413280" 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-15T20:02:07.412157" elapsed="0.001149"/>
</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-15T20:02:07.413631" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:07.413383" elapsed="0.000306"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.414439" 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-15T20:02:07.413947" elapsed="0.000519"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:07.413713" elapsed="0.000789"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:07.413365" elapsed="0.001158"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.416918" 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-15T20:02:07.414676" elapsed="0.002269"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:02:07.417001" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:02:07.417154" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:07.411824" elapsed="0.005354"/>
</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-15T20:02:07.418567" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:07.418189" elapsed="0.000516">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:07.418934" 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-15T20:02:07.417848" elapsed="0.001112"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:02:07.419169" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:02:07.419033" elapsed="0.000195"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:07.419015" elapsed="0.000236"/>
</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-15T20:02:07.419398" 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-15T20:02:07.419571" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:02:07.419637" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:02:07.421704" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:07.417483" elapsed="0.004260"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.423210" 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-15T20:02:07.422938" elapsed="0.000318"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:07.423677" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:07.423411" elapsed="0.000310"/>
</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-15T20:02:07.430134" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.425900" elapsed="0.005931">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:07.423846" elapsed="0.008075">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.432106" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:07.431954" elapsed="0.000218"/>
</branch>
<status status="FAIL" start="2026-04-15T20:02:07.423827" elapsed="0.008368">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.432712" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:07.432867" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:02:07.432830" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:07.432813" elapsed="0.000116"/>
</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-15T20:02:07.433073" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:02:07.433143" 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-15T20:02:07.422103" elapsed="0.011148">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.433328" 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-15T20:02:07.279989" elapsed="0.153437">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.433696" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:07.433520" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:07.433504" elapsed="0.000331"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:07.433869" 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-15T20:02:07.274109" elapsed="0.159862">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.268950" elapsed="0.165121">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.268805" elapsed="0.165327">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.266637" elapsed="0.167589">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:07.266381" elapsed="0.167901">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:02:07.266365" elapsed="0.167948">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:07.434596" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:07.434379" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:07.434363" elapsed="0.000313"/>
</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-15T20:02:07.265141" elapsed="0.169630">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.450262" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:17.449910" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:17.449884" elapsed="0.000479"/>
</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-15T20:02:17.451976" 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-15T20:02:17.451508" elapsed="0.000496"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.452478" 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-15T20:02:17.452171" elapsed="0.000334"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:02:17.452564" elapsed="0.000320"/>
</return>
<msg time="2026-04-15T20:02:17.453024" 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-15T20:02:17.451087" elapsed="0.001963"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.454106" 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-15T20:02:17.453800" elapsed="0.000333"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:02:17.454180" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:02:17.454329" 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-15T20:02:17.453430" 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-15T20:02:17.542376" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:17.541757" elapsed="0.000717"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:02:17.544459" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:17.544196" elapsed="0.000336">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:17.544775" 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-15T20:02:17.543559" elapsed="0.001382"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.546661" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:17.545958" elapsed="0.000899"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:02:17.548196" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:02:17.548470" 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-15T20:02:17.547852" elapsed="0.000715"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.549965" 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-15T20:02:17.549538" elapsed="0.000534"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.551690" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:17.551422" elapsed="0.000329"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.552196" 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-15T20:02:17.551921" 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-15T20:02:17.552551" elapsed="0.000255"/>
</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-15T20:02:17.553010" 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-15T20:02:17.553193" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:02:17.552414" elapsed="0.000836"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:02:17.552274" elapsed="0.001009"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:02:17.553328" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:02:17.553515" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:02:17.551032" elapsed="0.002531"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:17.550232" elapsed="0.003373"/>
</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-15T20:02:17.553947" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:17.553663" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:17.550177" elapsed="0.003905"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.555900" 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-15T20:02:17.555177" elapsed="0.000820"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:02:17.556081" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:02:17.539638" elapsed="0.016739"/>
</kw>
<msg time="2026-04-15T20:02:17.556645" 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-15T20:02:17.489889" elapsed="0.066810"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:17.569071" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:17.581063" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:17.593164" 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-15T20:02:17.593362" 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-15T20:02:17.593540" 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-15T20:02:17.593978" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:17.593827" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:17.593812" 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-15T20:02:17.594304" 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-15T20:02:17.594475" 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-15T20:02:17.594643" elapsed="0.000025"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:02:17.593780" elapsed="0.000921"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:02:17.593615" elapsed="0.001113"/>
</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-15T20:02:17.594899" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:17.594976" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:02:17.595095" 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-15T20:02:17.485726" elapsed="0.109397"/>
</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-15T20:02:17.596565" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:17.596184" elapsed="0.000534">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:17.596943" 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-15T20:02:17.595832" elapsed="0.001143"/>
</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-15T20:02:17.597301" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:17.597049" elapsed="0.000309"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.598090" 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-15T20:02:17.597581" elapsed="0.000536"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:17.597382" elapsed="0.000772"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:17.597031" elapsed="0.001144"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.600546" 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-15T20:02:17.598327" elapsed="0.002245"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:02:17.600646" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:02:17.600822" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:17.595488" elapsed="0.005360"/>
</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-15T20:02:17.602216" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:17.601830" elapsed="0.000525">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:17.602564" 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-15T20:02:17.601476" elapsed="0.001148"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:02:17.602866" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:02:17.602700" elapsed="0.000225"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:17.602681" elapsed="0.000268"/>
</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-15T20:02:17.603096" 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-15T20:02:17.603269" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:02:17.603335" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:02:17.605404" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:17.601151" elapsed="0.004279"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.606953" 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-15T20:02:17.606612" elapsed="0.000388"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:17.607429" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:17.607156" 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-15T20:02:17.612982" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.609577" elapsed="0.005073">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:17.607542" elapsed="0.007215">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.614945" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:17.614793" elapsed="0.000216"/>
</branch>
<status status="FAIL" start="2026-04-15T20:02:17.607523" elapsed="0.007509">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.615556" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:17.615690" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:02:17.615654" elapsed="0.000092"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:17.615637" elapsed="0.000131"/>
</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-15T20:02:17.615913" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:02:17.615981" 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-15T20:02:17.605791" elapsed="0.010298">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.616165" 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-15T20:02:17.464095" elapsed="0.152166">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.616529" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:17.616354" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:17.616338" elapsed="0.000345"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:17.616716" elapsed="0.000030"/>
</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-15T20:02:17.458196" elapsed="0.158639">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.453259" elapsed="0.163643">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.453110" elapsed="0.163851">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.450684" elapsed="0.166372">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:17.450421" elapsed="0.166690">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:02:17.450405" elapsed="0.166738">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:17.617432" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:17.617211" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:17.617195" elapsed="0.000316"/>
</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-15T20:02:17.449365" elapsed="0.168225">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.632522" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:27.632163" elapsed="0.000444"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:27.632138" elapsed="0.000508"/>
</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-15T20:02:27.634353" 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-15T20:02:27.633872" elapsed="0.000516"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.634930" 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-15T20:02:27.634592" elapsed="0.000364"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:02:27.635008" elapsed="0.000300"/>
</return>
<msg time="2026-04-15T20:02:27.635446" 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-15T20:02:27.633409" elapsed="0.002063"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.636577" 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-15T20:02:27.636259" elapsed="0.000346"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:02:27.636653" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:02:27.636823" 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-15T20:02:27.635867" elapsed="0.000982"/>
</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-15T20:02:27.725121" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:27.724491" elapsed="0.000729"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:02:27.727200" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:27.726936" elapsed="0.000345">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:27.727472" 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-15T20:02:27.726433" elapsed="0.001133"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.729194" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:27.728533" elapsed="0.000758"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:02:27.730841" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:02:27.731104" 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-15T20:02:27.730515" elapsed="0.000684"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.732536" 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-15T20:02:27.732140" elapsed="0.000503"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.734209" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:27.733939" elapsed="0.000315"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.734697" 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-15T20:02:27.734420" 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-15T20:02:27.735063" 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-15T20:02:27.735414" 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-15T20:02:27.735593" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:02:27.734927" elapsed="0.000724"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:02:27.734788" elapsed="0.000893"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:02:27.735724" elapsed="0.000044"/>
</return>
<msg time="2026-04-15T20:02:27.735924" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:02:27.733372" elapsed="0.002601"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:27.732806" elapsed="0.003208"/>
</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-15T20:02:27.736352" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:27.736071" elapsed="0.000362"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:27.732751" elapsed="0.003735"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.738338" 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-15T20:02:27.737453" elapsed="0.000981"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:02:27.738518" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:02:27.722399" elapsed="0.016429"/>
</kw>
<msg time="2026-04-15T20:02:27.739116" 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-15T20:02:27.672392" elapsed="0.066792"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:27.751533" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:27.763443" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:27.775440" 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-15T20:02:27.775637" elapsed="0.000021"/>
</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-15T20:02:27.775827" 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-15T20:02:27.776236" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:27.776089" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:27.776075" elapsed="0.000339"/>
</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-15T20:02:27.776557" 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-15T20:02:27.776724" 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-15T20:02:27.776915" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:02:27.776044" elapsed="0.000923"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:02:27.775902" elapsed="0.001091"/>
</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-15T20:02:27.777143" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:27.777219" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:02:27.777336" 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-15T20:02:27.668185" elapsed="0.109176"/>
</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-15T20:02:27.778827" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:27.778432" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:27.779173" 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-15T20:02:27.778091" elapsed="0.001108"/>
</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-15T20:02:27.779517" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:27.779270" elapsed="0.000305"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.780304" 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-15T20:02:27.779813" elapsed="0.000517"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:27.779598" elapsed="0.000767"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:27.779251" elapsed="0.001136"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.782800" 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-15T20:02:27.780540" elapsed="0.002287"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:02:27.782878" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:02:27.783029" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:27.777720" elapsed="0.005333"/>
</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-15T20:02:27.784456" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:27.784074" elapsed="0.000522">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:27.784837" 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-15T20:02:27.783718" elapsed="0.001145"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:02:27.785070" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:02:27.784935" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:27.784916" elapsed="0.000237"/>
</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-15T20:02:27.785297" 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-15T20:02:27.785476" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:02:27.785542" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:02:27.787621" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:27.783393" elapsed="0.004255"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.789150" 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-15T20:02:27.788873" elapsed="0.000324"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:27.789616" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:27.789352" elapsed="0.000308"/>
</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-15T20:02:27.795668" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.791766" elapsed="0.005577">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:27.789727" elapsed="0.007709">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.797623" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:27.797469" elapsed="0.000219"/>
</branch>
<status status="FAIL" start="2026-04-15T20:02:27.789710" elapsed="0.008001">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.798249" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:27.798384" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:02:27.798348" elapsed="0.000076"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:27.798331" elapsed="0.000113"/>
</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-15T20:02:27.798587" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:02:27.798656" 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-15T20:02:27.788008" elapsed="0.010772">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.798858" 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-15T20:02:27.646637" elapsed="0.152317">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.799258" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:27.799082" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:27.799065" elapsed="0.000286"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:27.799383" 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-15T20:02:27.640722" elapsed="0.158760">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.635678" elapsed="0.163870">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.635530" elapsed="0.164077">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.633011" elapsed="0.166689">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:27.632725" elapsed="0.167046">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:02:27.632706" elapsed="0.167098">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:27.800090" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:27.799871" elapsed="0.000275"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:27.799855" elapsed="0.000315"/>
</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-15T20:02:27.631606" elapsed="0.168640">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.816254" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:37.815908" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:37.815883" elapsed="0.000474"/>
</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-15T20:02:37.817960" 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-15T20:02:37.817487" elapsed="0.000501"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.818460" 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-15T20:02:37.818153" elapsed="0.000333"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:02:37.818535" elapsed="0.000281"/>
</return>
<msg time="2026-04-15T20:02:37.818952" 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-15T20:02:37.817071" elapsed="0.001906"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.820038" 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-15T20:02:37.819715" elapsed="0.000402"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:02:37.820167" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:02:37.820316" 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-15T20:02:37.819358" elapsed="0.000982"/>
</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-15T20:02:37.908358" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:37.907726" elapsed="0.000735"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:02:37.910264" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:37.910004" elapsed="0.000339">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:37.910538" 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-15T20:02:37.909470" elapsed="0.001164"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.912540" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:37.911885" elapsed="0.000757"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:02:37.914121" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:02:37.914382" 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-15T20:02:37.913623" elapsed="0.000856"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.915863" 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-15T20:02:37.915449" 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-15T20:02:37.917364" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:37.917098" elapsed="0.000310"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.918018" 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-15T20:02:37.917573" elapsed="0.000472"/>
</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-15T20:02:37.918366" elapsed="0.000160"/>
</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-15T20:02:37.918714" elapsed="0.000039"/>
</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-15T20:02:37.918910" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:02:37.918229" elapsed="0.000739"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:02:37.918094" elapsed="0.000905"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:02:37.919042" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:02:37.919246" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:02:37.916693" elapsed="0.002603"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:37.916120" elapsed="0.003219"/>
</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-15T20:02:37.919669" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:37.919397" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:37.916068" elapsed="0.003757"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.921520" 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-15T20:02:37.920801" elapsed="0.000818"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:02:37.921706" elapsed="0.000236"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:02:37.905349" elapsed="0.016840"/>
</kw>
<msg time="2026-04-15T20:02:37.922450" 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-15T20:02:37.855542" elapsed="0.066998"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:37.934723" elapsed="0.000039"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:37.946607" elapsed="0.000027"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:37.958503" 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-15T20:02:37.958698" 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-15T20:02:37.958890" 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-15T20:02:37.959317" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:37.959149" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:37.959135" elapsed="0.000362"/>
</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-15T20:02:37.959639" 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-15T20:02:37.959837" 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-15T20:02:37.960011" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:02:37.959104" elapsed="0.000960"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:02:37.958964" elapsed="0.001126"/>
</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-15T20:02:37.960234" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:37.960310" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:02:37.960424" 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-15T20:02:37.851423" elapsed="0.109027"/>
</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-15T20:02:37.961898" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:37.961500" elapsed="0.000538">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:37.962244" 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-15T20:02:37.961154" elapsed="0.001116"/>
</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-15T20:02:37.962586" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:37.962343" elapsed="0.000299"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.963474" 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-15T20:02:37.962911" elapsed="0.000590"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:37.962666" elapsed="0.000870"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:37.962324" elapsed="0.001234"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.965955" 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-15T20:02:37.963710" elapsed="0.002272"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:02:37.966034" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:02:37.966185" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:37.960830" elapsed="0.005380"/>
</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-15T20:02:37.967595" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:37.967216" elapsed="0.000545">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:37.967974" 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-15T20:02:37.966858" elapsed="0.001142"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:02:37.968208" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:02:37.968072" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:37.968054" elapsed="0.000236"/>
</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-15T20:02:37.968435" 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-15T20:02:37.968606" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:02:37.968671" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:02:37.972431" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:37.966509" elapsed="0.005949"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.973938" 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-15T20:02:37.973647" elapsed="0.000337"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:37.974404" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:37.974139" elapsed="0.000309"/>
</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-15T20:02:37.980538" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.976546" elapsed="0.005719">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:37.974516" elapsed="0.007837">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.982544" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:37.982389" elapsed="0.000219"/>
</branch>
<status status="FAIL" start="2026-04-15T20:02:37.974497" elapsed="0.008134">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.983166" elapsed="0.000053"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:37.983330" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:02:37.983293" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:37.983276" 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-15T20:02:37.983536" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:02:37.983642" 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-15T20:02:37.972837" elapsed="0.011002">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.983964" 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-15T20:02:37.829980" elapsed="0.154120">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.984478" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:37.984232" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:37.984209" elapsed="0.000403"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:37.984656" 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-15T20:02:37.824142" elapsed="0.160697">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.819189" elapsed="0.165751">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.819035" elapsed="0.165989">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.816666" elapsed="0.168485">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:37.816413" elapsed="0.168815">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:02:37.816397" elapsed="0.168874">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:37.985667" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:37.985362" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:37.985340" elapsed="0.000564"/>
</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-15T20:02:37.815362" elapsed="0.170651">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.002584" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:48.002223" elapsed="0.000441"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:48.002198" elapsed="0.000495"/>
</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-15T20:02:48.004364" 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-15T20:02:48.003885" elapsed="0.000509"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.004987" 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-15T20:02:48.004642" elapsed="0.000373"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:02:48.005064" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T20:02:48.005251" 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-15T20:02:48.003436" elapsed="0.001842"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.006647" 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-15T20:02:48.006323" elapsed="0.000352"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:02:48.006735" elapsed="0.000044"/>
</return>
<msg time="2026-04-15T20:02:48.006904" 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-15T20:02:48.005955" elapsed="0.000975"/>
</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-15T20:02:48.097169" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:48.096222" elapsed="0.001046"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:02:48.099061" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:48.098784" elapsed="0.000358">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:48.099340" 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-15T20:02:48.098271" elapsed="0.001165"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.101311" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:48.100423" elapsed="0.000985"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:02:48.102702" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:02:48.102987" 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-15T20:02:48.102381" elapsed="0.000703"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.104465" 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-15T20:02:48.104047" 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-15T20:02:48.106236" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:48.105951" elapsed="0.000330"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.106728" 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-15T20:02:48.106449" elapsed="0.000323"/>
</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-15T20:02:48.107097" 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-15T20:02:48.107314" 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-15T20:02:48.107494" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:02:48.106961" elapsed="0.000589"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:02:48.106822" elapsed="0.000760"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:02:48.107624" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:02:48.107827" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:02:48.105502" elapsed="0.002381"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:48.104727" elapsed="0.003198"/>
</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-15T20:02:48.108267" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:48.107985" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:48.104675" elapsed="0.003729"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.110282" 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-15T20:02:48.109388" elapsed="0.001034"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:02:48.110510" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:02:48.094069" elapsed="0.016760"/>
</kw>
<msg time="2026-04-15T20:02:48.111092" 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-15T20:02:48.043325" elapsed="0.067824"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:48.124091" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:48.136556" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:48.148892" 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-15T20:02:48.149115" 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-15T20:02:48.149300" 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-15T20:02:48.149726" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:48.149576" elapsed="0.000341"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:48.149561" elapsed="0.000384"/>
</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-15T20:02:48.150127" 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-15T20:02:48.150306" 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-15T20:02:48.150474" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:02:48.149527" elapsed="0.001000"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:02:48.149377" elapsed="0.001180"/>
</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-15T20:02:48.150704" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:48.150801" elapsed="0.000017"/>
</return>
<msg time="2026-04-15T20:02:48.150929" 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-15T20:02:48.038972" elapsed="0.111983"/>
</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-15T20:02:48.152548" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:48.152063" elapsed="0.000639">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:48.152937" 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-15T20:02:48.151667" elapsed="0.001295"/>
</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-15T20:02:48.153316" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:48.153037" elapsed="0.000338"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.154185" 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-15T20:02:48.153601" elapsed="0.000612"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:48.153400" elapsed="0.000850"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:48.153018" elapsed="0.001254"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.156723" 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-15T20:02:48.154426" elapsed="0.002340"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:02:48.156822" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:02:48.156979" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:48.151330" elapsed="0.005674"/>
</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-15T20:02:48.158462" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:48.158024" elapsed="0.000582">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:48.158851" 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-15T20:02:48.157659" elapsed="0.001218"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:02:48.159089" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:02:48.158951" elapsed="0.000198"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:48.158932" elapsed="0.000241"/>
</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-15T20:02:48.159331" 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-15T20:02:48.159508" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:02:48.159574" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:02:48.161648" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:48.157327" elapsed="0.004349"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.163260" 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-15T20:02:48.162976" elapsed="0.000340"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:48.163765" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:48.163475" elapsed="0.000338"/>
</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-15T20:02:48.169588" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.165920" elapsed="0.005428">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:48.163881" elapsed="0.007564">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.171641" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:48.171484" elapsed="0.000226"/>
</branch>
<status status="FAIL" start="2026-04-15T20:02:48.163863" elapsed="0.007887">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.172345" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:48.172492" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:02:48.172446" elapsed="0.000089"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:48.172428" 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-15T20:02:48.172705" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:02:48.172796" 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-15T20:02:48.162045" elapsed="0.010866">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.172988" 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-15T20:02:48.016854" elapsed="0.156235">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.173367" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:48.173187" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:48.173170" elapsed="0.000293"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:48.173503" 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-15T20:02:48.010821" elapsed="0.162788">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.005501" elapsed="0.168176">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.005349" elapsed="0.168406">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.003031" elapsed="0.170824">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:48.002769" elapsed="0.171148">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:02:48.002752" elapsed="0.171198">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:48.174279" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:48.174018" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:48.174002" elapsed="0.000364"/>
</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-15T20:02:48.001534" elapsed="0.172916">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.189067" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:58.188709" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:58.188685" elapsed="0.000481"/>
</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-15T20:02:58.190759" 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-15T20:02:58.190295" elapsed="0.000493"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.191314" 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-15T20:02:58.190979" elapsed="0.000362"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:02:58.191391" elapsed="0.000290"/>
</return>
<msg time="2026-04-15T20:02:58.191837" 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-15T20:02:58.189879" elapsed="0.001984"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.192910" 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-15T20:02:58.192590" elapsed="0.000347"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:02:58.192984" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:02:58.193133" 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-15T20:02:58.192236" elapsed="0.000922"/>
</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-15T20:02:58.282774" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:58.282132" elapsed="0.000744"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:02:58.284639" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:58.284368" elapsed="0.000347">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:58.284930" 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-15T20:02:58.283877" elapsed="0.001150"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.286797" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:58.286128" elapsed="0.000770"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:02:58.288210" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:02:58.288575" 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-15T20:02:58.287893" elapsed="0.000779"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.290193" 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-15T20:02:58.289641" elapsed="0.000661"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.291688" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:58.291423" elapsed="0.000325"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.292183" 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-15T20:02:58.291913" elapsed="0.000296"/>
</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-15T20:02:58.292535" elapsed="0.000174"/>
</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-15T20:02:58.292916" 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-15T20:02:58.293096" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:02:58.292401" elapsed="0.000753"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:02:58.292265" elapsed="0.000920"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:02:58.293284" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:02:58.293473" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:02:58.291050" elapsed="0.002473"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:58.290451" elapsed="0.003114"/>
</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-15T20:02:58.294051" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:58.293623" elapsed="0.000510"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:58.290399" elapsed="0.003788"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.295906" 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-15T20:02:58.295177" elapsed="0.000829"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:02:58.296092" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:02:58.279638" elapsed="0.016758"/>
</kw>
<msg time="2026-04-15T20:02:58.296660" 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-15T20:02:58.229971" elapsed="0.066743"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:58.309094" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:58.321348" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:02:58.333243" 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-15T20:02:58.333441" 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-15T20:02:58.333616" 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-15T20:02:58.334038" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:58.333894" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:58.333879" elapsed="0.000340"/>
</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-15T20:02:58.334362" 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-15T20:02:58.334532" 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-15T20:02:58.334699" elapsed="0.000026"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:02:58.333847" elapsed="0.000935"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:02:58.333691" elapsed="0.001117"/>
</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-15T20:02:58.334961" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:58.335038" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:02:58.335173" 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-15T20:02:58.225849" elapsed="0.109353"/>
</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-15T20:02:58.336676" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:58.336295" elapsed="0.000537">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:58.337041" 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-15T20:02:58.335953" elapsed="0.001113"/>
</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-15T20:02:58.337387" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:58.337138" elapsed="0.000307"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.338172" 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-15T20:02:58.337664" elapsed="0.000535"/>
</kw>
<status status="PASS" start="2026-04-15T20:02:58.337469" elapsed="0.000766"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:58.337120" elapsed="0.001136"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.340681" 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-15T20:02:58.338408" elapsed="0.002300"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:02:58.340776" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:02:58.340931" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:58.335604" elapsed="0.005352"/>
</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-15T20:02:58.342322" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:58.341945" elapsed="0.000515">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:02:58.342668" 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-15T20:02:58.341585" elapsed="0.001109"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:02:58.342917" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:02:58.342782" elapsed="0.000199"/>
</branch>
<status status="PASS" start="2026-04-15T20:02:58.342763" elapsed="0.000241"/>
</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-15T20:02:58.343168" 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-15T20:02:58.343346" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:02:58.343410" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:02:58.345444" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:02:58.341259" elapsed="0.004213"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.346942" 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-15T20:02:58.346649" elapsed="0.000339"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:02:58.347462" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:02:58.347187" elapsed="0.000320"/>
</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-15T20:02:58.352988" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.349630" elapsed="0.005012">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:58.347576" elapsed="0.007152">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.354965" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:58.354808" elapsed="0.000223"/>
</branch>
<status status="FAIL" start="2026-04-15T20:02:58.347558" elapsed="0.007497">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.355654" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:58.355818" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:02:58.355781" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:58.355762" elapsed="0.000120"/>
</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-15T20:02:58.356028" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:02:58.356098" 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-15T20:02:58.345836" elapsed="0.010371">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.356285" 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-15T20:02:58.202946" elapsed="0.153437">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.356654" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:58.356479" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:58.356462" elapsed="0.000304"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:02:58.356800" 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-15T20:02:58.196987" elapsed="0.159911">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.192065" elapsed="0.164901">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.191921" elapsed="0.165105">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.189478" elapsed="0.167641">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:02:58.189223" elapsed="0.167952">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:02:58.189207" elapsed="0.167999">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:02:58.357490" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:02:58.357272" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:02:58.357257" 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-15T20:02:58.188191" elapsed="0.169493">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.373513" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:08.373160" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:08.373135" 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-15T20:03:08.375235" 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-15T20:03:08.374775" elapsed="0.000488"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.375786" 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-15T20:03:08.375457" elapsed="0.000357"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:03:08.375863" elapsed="0.000293"/>
</return>
<msg time="2026-04-15T20:03:08.376293" 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-15T20:03:08.374335" elapsed="0.001984"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.377372" 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-15T20:03:08.377067" elapsed="0.000332"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:03:08.377445" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:03:08.377598" 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-15T20:03:08.376695" 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-15T20:03:08.466833" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:08.466170" elapsed="0.000762"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:03:08.468981" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:08.468680" elapsed="0.000381">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:08.469258" 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-15T20:03:08.468169" elapsed="0.001185"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.471303" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:08.470411" elapsed="0.000991"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:03:08.472747" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:03:08.473026" 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-15T20:03:08.472402" elapsed="0.000721"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.474500" 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-15T20:03:08.474091" 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-15T20:03:08.476204" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:08.475930" elapsed="0.000321"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.476709" 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-15T20:03:08.476422" elapsed="0.000329"/>
</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-15T20:03:08.477096" elapsed="0.000078"/>
</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-15T20:03:08.477523" 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-15T20:03:08.477721" elapsed="0.000052"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:03:08.476956" elapsed="0.000858"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:03:08.476810" elapsed="0.001036"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:03:08.477892" elapsed="0.000032"/>
</return>
<msg time="2026-04-15T20:03:08.478083" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:03:08.475523" elapsed="0.002609"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:08.474927" 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-15T20:03:08.478507" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:08.478234" elapsed="0.000354"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:08.474718" elapsed="0.003925"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.480558" 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-15T20:03:08.479836" elapsed="0.000819"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:03:08.480766" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:03:08.463956" elapsed="0.017118"/>
</kw>
<msg time="2026-04-15T20:03:08.481329" 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-15T20:03:08.413222" elapsed="0.068164"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:08.494716" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:08.506757" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:08.519191" 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-15T20:03:08.519421" 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-15T20:03:08.519674" 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-15T20:03:08.520184" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:08.520033" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:08.520018" elapsed="0.000352"/>
</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-15T20:03:08.520517" 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-15T20:03:08.520688" 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-15T20:03:08.520888" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:03:08.519981" elapsed="0.001011"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:03:08.519795" elapsed="0.001228"/>
</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-15T20:03:08.521178" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:08.521259" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:03:08.521381" 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-15T20:03:08.409053" elapsed="0.112355"/>
</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-15T20:03:08.522930" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:08.522491" elapsed="0.000612">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:08.523353" 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-15T20:03:08.522134" elapsed="0.001250"/>
</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-15T20:03:08.523858" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:08.523469" elapsed="0.000462"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.524667" 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-15T20:03:08.524166" elapsed="0.000528"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:08.523960" elapsed="0.000795"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:08.523444" elapsed="0.001336"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.527152" 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-15T20:03:08.524932" elapsed="0.002247"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:03:08.527231" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:03:08.527384" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:08.521795" elapsed="0.005613"/>
</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-15T20:03:08.528973" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:08.528539" elapsed="0.000575">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:08.529325" 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-15T20:03:08.528191" elapsed="0.001159"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:03:08.529556" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:03:08.529421" elapsed="0.000193"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:08.529403" elapsed="0.000234"/>
</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-15T20:03:08.529844" 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-15T20:03:08.530020" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:03:08.530086" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:03:08.532177" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:08.527755" elapsed="0.004450"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.533660" 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-15T20:03:08.533387" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:08.534152" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:08.533887" elapsed="0.000309"/>
</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-15T20:03:08.539746" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.536331" elapsed="0.005145">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:08.534263" elapsed="0.007301">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.541790" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:08.541599" elapsed="0.000259"/>
</branch>
<status status="FAIL" start="2026-04-15T20:03:08.534245" elapsed="0.007637">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.542398" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:08.542531" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:03:08.542495" elapsed="0.000076"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:08.542478" elapsed="0.000114"/>
</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-15T20:03:08.542749" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:03:08.542821" 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-15T20:03:08.532549" elapsed="0.010381">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.543006" 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-15T20:03:08.387327" elapsed="0.155776">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.543370" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:08.543195" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:08.543179" elapsed="0.000286"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:08.543496" 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-15T20:03:08.381425" elapsed="0.162204">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.376521" elapsed="0.167175">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.376376" elapsed="0.167397">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.373949" elapsed="0.169920">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:08.373675" elapsed="0.170280">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:03:08.373660" elapsed="0.170329">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:08.544279" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:08.544057" elapsed="0.000279"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:08.544041" elapsed="0.000318"/>
</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-15T20:03:08.372607" elapsed="0.171831">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.560215" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:18.559717" elapsed="0.000598"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:18.559686" elapsed="0.000667"/>
</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-15T20:03:18.562477" 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-15T20:03:18.561995" elapsed="0.000511"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.563000" 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-15T20:03:18.562674" elapsed="0.000352"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:03:18.563075" elapsed="0.000290"/>
</return>
<msg time="2026-04-15T20:03:18.563504" 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-15T20:03:18.561334" elapsed="0.002196"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.564598" 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-15T20:03:18.564299" elapsed="0.000326"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:03:18.564671" elapsed="0.000027"/>
</return>
<msg time="2026-04-15T20:03:18.564835" 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-15T20:03:18.563951" elapsed="0.000911"/>
</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-15T20:03:18.652334" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:18.651685" elapsed="0.000746"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:03:18.654434" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:18.654153" elapsed="0.000362">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:18.654711" 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-15T20:03:18.653650" elapsed="0.001177"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.656488" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:18.655837" elapsed="0.000749"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:03:18.658131" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:03:18.658428" 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-15T20:03:18.657815" elapsed="0.000798"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.660203" 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-15T20:03:18.659573" elapsed="0.000736"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.661809" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:18.661415" elapsed="0.000448"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.662342" 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-15T20:03:18.662044" elapsed="0.000325"/>
</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-15T20:03:18.662695" elapsed="0.000210"/>
</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-15T20:03:18.663102" 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-15T20:03:18.663282" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:03:18.662558" elapsed="0.000783"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:03:18.662420" elapsed="0.000953"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:03:18.663417" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:03:18.663619" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:03:18.661036" elapsed="0.002945"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:18.660456" 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-15T20:03:18.664396" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:18.664118" elapsed="0.000359"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:18.660405" elapsed="0.004126"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.666229" 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-15T20:03:18.665497" elapsed="0.000830"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:03:18.666411" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:03:18.649587" elapsed="0.017121"/>
</kw>
<msg time="2026-04-15T20:03:18.666985" 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-15T20:03:18.599988" elapsed="0.067051"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:18.679005" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:18.690850" elapsed="0.000027"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:18.702675" elapsed="0.000026"/>
</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-15T20:03:18.702903" 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-15T20:03:18.703080" 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-15T20:03:18.703527" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:18.703381" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:18.703366" elapsed="0.000341"/>
</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-15T20:03:18.703879" 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-15T20:03:18.704051" 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-15T20:03:18.704218" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:03:18.703334" elapsed="0.000937"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:03:18.703190" elapsed="0.001106"/>
</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-15T20:03:18.704442" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:18.704517" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:03:18.704632" 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-15T20:03:18.595880" elapsed="0.108777"/>
</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-15T20:03:18.706097" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:18.705702" elapsed="0.000534">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:18.706442" 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-15T20:03:18.705363" elapsed="0.001107"/>
</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-15T20:03:18.706815" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:18.706542" elapsed="0.000337"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.707585" 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-15T20:03:18.707099" elapsed="0.000512"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:18.706902" elapsed="0.000745"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:18.706524" elapsed="0.001144"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.710134" 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-15T20:03:18.707836" elapsed="0.002325"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:03:18.710212" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:03:18.710362" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:18.705037" elapsed="0.005349"/>
</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-15T20:03:18.711786" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:18.711392" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:18.712134" 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-15T20:03:18.711056" elapsed="0.001103"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:03:18.712367" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:03:18.712232" elapsed="0.000193"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:18.712213" elapsed="0.000236"/>
</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-15T20:03:18.712593" 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-15T20:03:18.712785" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:03:18.712853" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:03:18.716650" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:18.710710" elapsed="0.005968"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.718195" 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-15T20:03:18.717923" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:18.718750" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:18.718399" elapsed="0.000398"/>
</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-15T20:03:18.725380" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.720897" elapsed="0.006208">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:18.718871" elapsed="0.008321">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.727380" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:18.727226" elapsed="0.000219"/>
</branch>
<status status="FAIL" start="2026-04-15T20:03:18.718850" elapsed="0.008618">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.727993" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:18.728126" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:03:18.728091" elapsed="0.000076"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:18.728074" elapsed="0.000114"/>
</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-15T20:03:18.728330" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:03:18.728399" 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-15T20:03:18.717088" elapsed="0.011416">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.728580" 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-15T20:03:18.574548" elapsed="0.154127">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.728963" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:18.728783" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:18.728766" elapsed="0.000291"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:18.729089" 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-15T20:03:18.568675" elapsed="0.160510">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.563772" elapsed="0.165513">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.563590" elapsed="0.165755">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.560804" elapsed="0.168632">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:18.560429" elapsed="0.169060">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:03:18.560408" elapsed="0.169111">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:18.729857" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:18.729584" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:18.729569" elapsed="0.000369"/>
</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-15T20:03:18.559026" elapsed="0.170988">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.744900" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:28.744528" elapsed="0.000449"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:28.744502" elapsed="0.000503"/>
</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-15T20:03:28.746625" 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-15T20:03:28.746144" elapsed="0.000511"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.747150" 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-15T20:03:28.746838" elapsed="0.000338"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:03:28.747225" elapsed="0.000039"/>
</return>
<msg time="2026-04-15T20:03:28.747393" 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-15T20:03:28.745702" elapsed="0.001715"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.748746" 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-15T20:03:28.748430" elapsed="0.000345"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:03:28.748822" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:03:28.748968" 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-15T20:03:28.748075" elapsed="0.000918"/>
</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-15T20:03:28.836949" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:28.836320" elapsed="0.000727"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:03:28.839098" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:28.838829" elapsed="0.000350">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:28.839372" 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-15T20:03:28.838326" elapsed="0.001195"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.841166" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:28.840503" elapsed="0.000759"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:03:28.842752" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:03:28.843019" 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-15T20:03:28.842427" elapsed="0.000686"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.844465" 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-15T20:03:28.844068" 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-15T20:03:28.846180" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:28.845693" elapsed="0.000532"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.846662" 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-15T20:03:28.846389" elapsed="0.000299"/>
</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-15T20:03:28.847030" 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-15T20:03:28.847234" 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-15T20:03:28.847413" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:03:28.846894" elapsed="0.000576"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:03:28.846754" elapsed="0.000748"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:03:28.847546" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:03:28.847728" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:03:28.845304" elapsed="0.002490"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:28.844721" elapsed="0.003116"/>
</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-15T20:03:28.848164" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:28.847894" elapsed="0.000349"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:28.844669" elapsed="0.003626"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.850120" 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-15T20:03:28.849239" elapsed="0.000977"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:03:28.850299" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:03:28.834233" elapsed="0.016360"/>
</kw>
<msg time="2026-04-15T20:03:28.850863" 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-15T20:03:28.784517" elapsed="0.066402"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:28.863483" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:28.875541" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:28.887629" 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-15T20:03:28.887845" 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-15T20:03:28.888025" 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-15T20:03:28.888448" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:28.888299" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:28.888284" 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-15T20:03:28.888802" 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-15T20:03:28.889002" 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-15T20:03:28.889186" elapsed="0.000023"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:03:28.888252" elapsed="0.000992"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:03:28.888100" elapsed="0.001170"/>
</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-15T20:03:28.889419" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:28.889496" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:03:28.889616" 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-15T20:03:28.780310" elapsed="0.109333"/>
</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-15T20:03:28.891161" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:28.890727" elapsed="0.000591">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:28.891528" 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-15T20:03:28.890380" elapsed="0.001174"/>
</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-15T20:03:28.891902" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:28.891629" elapsed="0.000332"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.892695" 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-15T20:03:28.892187" elapsed="0.000535"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:28.891984" elapsed="0.000791"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:28.891610" elapsed="0.001187"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.895270" 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-15T20:03:28.892953" elapsed="0.002345"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:03:28.895351" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:03:28.895507" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:28.890038" elapsed="0.005494"/>
</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-15T20:03:28.896948" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:28.896544" elapsed="0.000545">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:28.897307" 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-15T20:03:28.896190" elapsed="0.001179"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:03:28.897589" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-15T20:03:28.897448" elapsed="0.000202"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:28.897428" 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-15T20:03:28.897859" 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-15T20:03:28.898036" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:03:28.898103" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:03:28.900138" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:28.895858" elapsed="0.004307"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.901652" 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-15T20:03:28.901369" elapsed="0.000345"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:28.902218" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:28.901941" elapsed="0.000322"/>
</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-15T20:03:28.907947" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.904396" elapsed="0.005272">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:28.902333" elapsed="0.007446">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.909970" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:28.909814" elapsed="0.000222"/>
</branch>
<status status="FAIL" start="2026-04-15T20:03:28.902314" elapsed="0.007746">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.910597" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:28.910751" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:03:28.910698" elapsed="0.000098"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:28.910680" elapsed="0.000137"/>
</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-15T20:03:28.910962" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:03:28.911031" 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-15T20:03:28.900518" elapsed="0.010621">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.911217" 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-15T20:03:28.758701" elapsed="0.152616">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.911604" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:28.911411" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:28.911394" elapsed="0.000363"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:28.911792" 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-15T20:03:28.752825" elapsed="0.159071">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.747621" elapsed="0.164343">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.747475" elapsed="0.164547">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.745316" elapsed="0.166800">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:28.745061" elapsed="0.167110">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:03:28.745046" elapsed="0.167157">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:28.912491" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:28.912270" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:28.912254" 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-15T20:03:28.743993" elapsed="0.168666">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:38.922518" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:38.922170" elapsed="0.000423"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:38.922145" elapsed="0.000474"/>
</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-15T20:03:38.924228" 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-15T20:03:38.923773" elapsed="0.000485"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:03:38.924749" 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-15T20:03:38.924425" elapsed="0.000352"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:03:38.924826" elapsed="0.000289"/>
</return>
<msg time="2026-04-15T20:03:38.925254" 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-15T20:03:38.923337" elapsed="0.001943"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:38.926359" 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-15T20:03:38.926056" elapsed="0.000335"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:03:38.926463" elapsed="0.000041"/>
</return>
<msg time="2026-04-15T20:03:38.926682" 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-15T20:03:38.925684" elapsed="0.001036"/>
</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-15T20:03:39.018241" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:39.017610" elapsed="0.000728"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:03:39.020128" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:39.019840" elapsed="0.000365">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:39.020397" 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-15T20:03:39.019304" elapsed="0.001186"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.022375" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:39.021714" elapsed="0.000765"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:03:39.023984" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:03:39.024250" 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-15T20:03:39.023426" elapsed="0.000918"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.025687" 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-15T20:03:39.025280" elapsed="0.000529"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.027168" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:39.026906" elapsed="0.000307"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.027645" 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-15T20:03:39.027375" elapsed="0.000295"/>
</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-15T20:03:39.028193" elapsed="0.000166"/>
</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-15T20:03:39.028549" 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-15T20:03:39.028744" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:03:39.028056" elapsed="0.000748"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:03:39.027717" elapsed="0.001118"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:03:39.028879" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:03:39.029061" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:03:39.026513" elapsed="0.002596"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:39.025957" elapsed="0.003193"/>
</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-15T20:03:39.029510" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:39.029206" elapsed="0.000399"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:39.025906" elapsed="0.003752"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.031321" 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-15T20:03:39.030601" elapsed="0.000824"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:03:39.031529" elapsed="0.000064"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:03:39.015261" elapsed="0.016741"/>
</kw>
<msg time="2026-04-15T20:03:39.032256" 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-15T20:03:38.966063" elapsed="0.066246"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:39.044449" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:39.056492" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:39.068407" elapsed="0.000027"/>
</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-15T20:03:39.068601" elapsed="0.000021"/>
</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-15T20:03:39.068796" 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-15T20:03:39.069206" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:39.069059" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:39.069045" elapsed="0.000369"/>
</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-15T20:03:39.069559" elapsed="0.000025"/>
</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-15T20:03:39.069760" 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-15T20:03:39.069933" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:03:39.069014" elapsed="0.000973"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:03:39.068872" elapsed="0.001141"/>
</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-15T20:03:39.070159" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:39.070235" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:03:39.070352" 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-15T20:03:38.961862" elapsed="0.108516"/>
</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-15T20:03:39.071821" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:39.071428" elapsed="0.000534">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:39.072170" 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-15T20:03:39.071085" elapsed="0.001110"/>
</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-15T20:03:39.072511" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:39.072266" elapsed="0.000303"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.073294" 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-15T20:03:39.072802" elapsed="0.000535"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:39.072593" elapsed="0.000781"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:39.072248" elapsed="0.001147"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.075815" 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-15T20:03:39.073551" elapsed="0.002291"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:03:39.075893" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:03:39.076045" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:39.070758" elapsed="0.005312"/>
</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-15T20:03:39.077495" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:39.077103" elapsed="0.000530">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:39.077861" 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-15T20:03:39.076762" elapsed="0.001124"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:03:39.078095" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:03:39.077959" elapsed="0.000195"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:39.077942" elapsed="0.000235"/>
</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-15T20:03:39.078323" 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-15T20:03:39.078496" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:03:39.078562" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:03:39.080615" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:39.076413" elapsed="0.004229"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.082172" 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-15T20:03:39.081898" elapsed="0.000321"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:39.082642" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:39.082372" elapsed="0.000314"/>
</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-15T20:03:39.089617" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:39.084826" elapsed="0.006472">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:39.082771" elapsed="0.008614">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:39.091610" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:39.091420" elapsed="0.000257"/>
</branch>
<status status="FAIL" start="2026-04-15T20:03:39.082751" elapsed="0.008950">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:39.092237" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:39.092371" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:03:39.092336" elapsed="0.000076"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:39.092319" elapsed="0.000114"/>
</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-15T20:03:39.092580" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:03:39.092650" 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-15T20:03:39.081043" elapsed="0.011729">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:39.092851" 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-15T20:03:38.940164" elapsed="0.152785">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:39.093254" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:39.093078" elapsed="0.000276"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:39.093061" elapsed="0.000316"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:39.093409" 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-15T20:03:38.932506" elapsed="0.161003">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:38.925483" elapsed="0.168093">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:38.925338" elapsed="0.168304">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:38.922950" elapsed="0.170841">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:38.922676" elapsed="0.171176">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:03:38.922660" elapsed="0.171224">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:39.094170" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:39.093951" elapsed="0.000276"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:39.093935" elapsed="0.000315"/>
</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-15T20:03:38.921568" elapsed="0.172761">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.109879" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:49.109372" elapsed="0.000617"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:49.109340" elapsed="0.000685"/>
</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-15T20:03:49.112182" 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-15T20:03:49.111611" elapsed="0.000600"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.112684" 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-15T20:03:49.112377" elapsed="0.000336"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:03:49.112783" elapsed="0.000288"/>
</return>
<msg time="2026-04-15T20:03:49.113209" 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-15T20:03:49.111041" elapsed="0.002194"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.114292" 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-15T20:03:49.113980" elapsed="0.000408"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:03:49.114437" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:03:49.114601" 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-15T20:03:49.113609" elapsed="0.001019"/>
</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-15T20:03:49.201977" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:49.201342" elapsed="0.000732"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:03:49.203814" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:49.203533" elapsed="0.000361">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:49.204087" 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-15T20:03:49.203048" elapsed="0.001133"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.206063" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:49.205406" elapsed="0.000754"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:03:49.207441" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:03:49.207707" 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-15T20:03:49.207132" elapsed="0.000688"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.209183" 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-15T20:03:49.208792" elapsed="0.000497"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.210883" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:49.210602" elapsed="0.000326"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.211364" 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-15T20:03:49.211092" elapsed="0.000298"/>
</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-15T20:03:49.211707" elapsed="0.000036"/>
</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-15T20:03:49.212074" 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-15T20:03:49.212256" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:03:49.211572" elapsed="0.000741"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:03:49.211439" elapsed="0.000906"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:03:49.212388" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:03:49.212570" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:03:49.210217" elapsed="0.002401"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:49.209442" elapsed="0.003218"/>
</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-15T20:03:49.213159" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:49.212717" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:49.209392" elapsed="0.003901"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.214966" 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-15T20:03:49.214235" elapsed="0.000827"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:03:49.215147" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:03:49.199032" elapsed="0.016407"/>
</kw>
<msg time="2026-04-15T20:03:49.215692" 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-15T20:03:49.149857" elapsed="0.065942"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:49.228035" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:49.239906" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:49.251836" 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-15T20:03:49.252031" 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-15T20:03:49.252210" 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-15T20:03:49.252615" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:49.252472" elapsed="0.000318"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:49.252457" 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-15T20:03:49.252961" 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-15T20:03:49.253130" 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-15T20:03:49.253296" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:03:49.252427" elapsed="0.000922"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:03:49.252284" elapsed="0.001090"/>
</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-15T20:03:49.253518" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:49.253593" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:03:49.253708" 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-15T20:03:49.145750" elapsed="0.108002"/>
</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-15T20:03:49.255212" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:49.254829" elapsed="0.000522">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:49.255556" 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-15T20:03:49.254443" elapsed="0.001138"/>
</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-15T20:03:49.255915" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:49.255653" elapsed="0.000320"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.256749" 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-15T20:03:49.256236" elapsed="0.000542"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:49.255996" elapsed="0.000819"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:49.255635" elapsed="0.001201"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.259228" 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-15T20:03:49.256991" elapsed="0.002263"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:03:49.259305" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:03:49.259458" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:49.254113" elapsed="0.005369"/>
</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-15T20:03:49.260858" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:49.260461" elapsed="0.000537">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:49.261205" 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-15T20:03:49.260124" elapsed="0.001106"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:03:49.261438" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:03:49.261302" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:49.261284" elapsed="0.000236"/>
</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-15T20:03:49.261670" 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-15T20:03:49.261865" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:03:49.261933" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:03:49.263967" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:49.259799" elapsed="0.004195"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.265438" 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-15T20:03:49.265166" elapsed="0.000318"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:49.265970" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:49.265637" elapsed="0.000377"/>
</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-15T20:03:49.272080" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.268111" elapsed="0.005683">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:49.266081" elapsed="0.007802">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.274070" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:49.273917" elapsed="0.000217"/>
</branch>
<status status="FAIL" start="2026-04-15T20:03:49.266063" elapsed="0.008094">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.274703" elapsed="0.000063"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:49.274909" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:03:49.274857" elapsed="0.000123"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:49.274835" elapsed="0.000182"/>
</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-15T20:03:49.275224" elapsed="0.000030"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:03:49.275365" 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-15T20:03:49.264340" elapsed="0.011182">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.275629" 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-15T20:03:49.124299" elapsed="0.151493">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.276172" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:49.275927" elapsed="0.000352"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:49.275904" elapsed="0.000408"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:49.276356" 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-15T20:03:49.118427" elapsed="0.158066">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.113439" elapsed="0.163146">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.113294" elapsed="0.163371">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.110453" elapsed="0.166364">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:49.110103" elapsed="0.166791">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:03:49.110081" elapsed="0.166856">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:49.277326" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:49.277028" elapsed="0.000375"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:49.277006" elapsed="0.000430"/>
</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-15T20:03:49.108601" elapsed="0.168942">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.294044" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:59.293548" elapsed="0.000598"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:59.293518" 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-15T20:03:59.296374" 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-15T20:03:59.295725" elapsed="0.000689"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.297192" 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-15T20:03:59.296756" elapsed="0.000473"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:03:59.297297" elapsed="0.000332"/>
</return>
<msg time="2026-04-15T20:03:59.297875" 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-15T20:03:59.295160" elapsed="0.002752"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.298986" 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-15T20:03:59.298667" elapsed="0.000345"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:03:59.299058" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:03:59.299204" 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-15T20:03:59.298315" elapsed="0.000914"/>
</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-15T20:03:59.387119" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:59.386467" elapsed="0.000752"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:03:59.389275" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:59.388683" elapsed="0.000669">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:59.389544" 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-15T20:03:59.388192" elapsed="0.001456"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.391273" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:59.390613" elapsed="0.000758"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:03:59.392628" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:03:59.393077" 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-15T20:03:59.392320" elapsed="0.000853"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.394524" 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-15T20:03:59.394133" elapsed="0.000500"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.396027" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:59.395761" elapsed="0.000312"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.396512" 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-15T20:03:59.396240" elapsed="0.000298"/>
</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-15T20:03:59.397043" elapsed="0.000177"/>
</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-15T20:03:59.397409" 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-15T20:03:59.397589" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:03:59.396727" elapsed="0.000934"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:03:59.396590" elapsed="0.001102"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:03:59.397749" elapsed="0.000033"/>
</return>
<msg time="2026-04-15T20:03:59.397938" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:03:59.395379" elapsed="0.002609"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:59.394800" elapsed="0.003229"/>
</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-15T20:03:59.398351" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:59.398086" elapsed="0.000344"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:59.394744" elapsed="0.003738"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.400162" 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-15T20:03:59.399425" elapsed="0.000890"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:03:59.400400" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:03:59.384082" elapsed="0.016611"/>
</kw>
<msg time="2026-04-15T20:03:59.401123" 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-15T20:03:59.334575" elapsed="0.066603"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:59.413344" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:59.425171" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:03:59.437045" 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-15T20:03:59.437248" 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-15T20:03:59.437427" 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-15T20:03:59.437883" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:59.437713" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:59.437698" 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-15T20:03:59.438217" 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-15T20:03:59.438388" 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-15T20:03:59.438562" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:03:59.437666" elapsed="0.000952"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:03:59.437503" elapsed="0.001141"/>
</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-15T20:03:59.438807" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:59.438886" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:03:59.439005" 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-15T20:03:59.330451" elapsed="0.108580"/>
</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-15T20:03:59.440500" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:59.440076" elapsed="0.000566">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:59.440865" 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-15T20:03:59.439718" elapsed="0.001172"/>
</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-15T20:03:59.441208" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:59.440963" elapsed="0.000301"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.442022" 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-15T20:03:59.441483" elapsed="0.000566"/>
</kw>
<status status="PASS" start="2026-04-15T20:03:59.441288" elapsed="0.000796"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:59.440945" elapsed="0.001160"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.444481" 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-15T20:03:59.442263" elapsed="0.002244"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:03:59.444559" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:03:59.444710" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:59.439392" elapsed="0.005356"/>
</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-15T20:03:59.446115" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:59.445724" elapsed="0.000530">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:03:59.446462" 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-15T20:03:59.445378" elapsed="0.001113"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:03:59.446700" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:03:59.446563" elapsed="0.000227"/>
</branch>
<status status="PASS" start="2026-04-15T20:03:59.446545" 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-15T20:03:59.446960" 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-15T20:03:59.447131" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:03:59.447196" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:03:59.451021" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:03:59.445056" elapsed="0.005992"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.452489" 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-15T20:03:59.452214" elapsed="0.000321"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:03:59.453004" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:03:59.452690" 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-15T20:03:59.458463" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.455140" elapsed="0.004980">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:59.453116" elapsed="0.007092">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.460395" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:59.460242" elapsed="0.000219"/>
</branch>
<status status="FAIL" start="2026-04-15T20:03:59.453098" elapsed="0.007387">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.461053" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:59.461187" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:03:59.461151" elapsed="0.000076"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:59.461133" elapsed="0.000115"/>
</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-15T20:03:59.461391" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:03:59.461460" 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-15T20:03:59.451390" elapsed="0.010178">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.461672" 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-15T20:03:59.309005" elapsed="0.152788">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.462063" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:59.461888" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:59.461871" elapsed="0.000286"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:03:59.462189" 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-15T20:03:59.303059" elapsed="0.159227">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.298143" elapsed="0.164209">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.297991" elapsed="0.164419">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.294611" elapsed="0.167889">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:03:59.294260" elapsed="0.168293">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:03:59.294239" elapsed="0.168344">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:03:59.462881" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:03:59.462647" elapsed="0.000290"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:03:59.462632" elapsed="0.000328"/>
</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-15T20:03:59.292852" elapsed="0.170185">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.479815" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:09.479297" elapsed="0.000629"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:09.479260" elapsed="0.000706"/>
</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-15T20:04:09.482032" 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-15T20:04:09.481553" elapsed="0.000508"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.482531" 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-15T20:04:09.482226" elapsed="0.000331"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:04:09.482605" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T20:04:09.482787" 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-15T20:04:09.481053" elapsed="0.001760"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.484109" 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-15T20:04:09.483802" elapsed="0.000334"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:04:09.484183" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:04:09.484332" 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-15T20:04:09.483432" 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-15T20:04:09.574427" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:09.573451" elapsed="0.001094"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:04:09.576696" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:09.576342" elapsed="0.000513">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:09.577073" 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-15T20:04:09.575720" elapsed="0.001451"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.579356" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:09.578568" elapsed="0.000887"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:04:09.580973" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:04:09.581305" 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-15T20:04:09.580482" elapsed="0.000923"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.582950" 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-15T20:04:09.582508" elapsed="0.000561"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.584663" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:09.584386" elapsed="0.000323"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.585197" 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-15T20:04:09.584919" 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-15T20:04:09.585565" 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-15T20:04:09.585950" 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-15T20:04:09.586134" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:04:09.585423" elapsed="0.000782"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:04:09.585277" elapsed="0.000964"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:04:09.586370" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T20:04:09.586580" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:04:09.583995" elapsed="0.002647"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:09.583239" elapsed="0.003458"/>
</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-15T20:04:09.587092" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:09.586789" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:09.583182" elapsed="0.004049"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.588992" 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-15T20:04:09.588200" elapsed="0.000892"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:04:09.589179" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:04:09.571127" elapsed="0.018396"/>
</kw>
<msg time="2026-04-15T20:04:09.589960" 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-15T20:04:09.519857" elapsed="0.070168"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:09.604875" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:09.617182" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:09.629239" 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-15T20:04:09.629476" 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-15T20:04:09.629667" 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-15T20:04:09.630160" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:09.630003" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:09.629984" elapsed="0.000361"/>
</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-15T20:04:09.630496" 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-15T20:04:09.630666" 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-15T20:04:09.630861" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:04:09.629938" elapsed="0.000978"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:04:09.629770" elapsed="0.001175"/>
</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-15T20:04:09.631090" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:09.631170" elapsed="0.000019"/>
</return>
<msg time="2026-04-15T20:04:09.631331" 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-15T20:04:09.515689" elapsed="0.115669"/>
</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-15T20:04:09.633056" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:09.632588" elapsed="0.000620">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:09.633422" 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-15T20:04:09.632187" elapsed="0.001260"/>
</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-15T20:04:09.633808" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:09.633521" elapsed="0.000347"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.634602" 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-15T20:04:09.634096" elapsed="0.000533"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:09.633893" elapsed="0.000773"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:09.633503" elapsed="0.001184"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.637151" 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-15T20:04:09.634870" elapsed="0.002309"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:04:09.637232" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:04:09.637390" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:09.631825" elapsed="0.005590"/>
</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-15T20:04:09.638821" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:09.638409" elapsed="0.000556">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:09.639178" 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-15T20:04:09.638067" elapsed="0.001137"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:04:09.639414" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:04:09.639276" elapsed="0.000199"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:09.639258" 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-15T20:04:09.639647" 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-15T20:04:09.639894" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:04:09.639963" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:04:09.642050" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:09.637721" elapsed="0.004357"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.643560" 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-15T20:04:09.643277" elapsed="0.000331"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:09.644069" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:09.643799" 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-15T20:04:09.650040" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.646234" elapsed="0.005897">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:09.644183" elapsed="0.008051">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.652512" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:09.652320" elapsed="0.000273"/>
</branch>
<status status="FAIL" start="2026-04-15T20:04:09.644165" elapsed="0.008459">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.653285" elapsed="0.000037"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:09.653459" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:04:09.653412" elapsed="0.000103"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:09.653389" elapsed="0.000154"/>
</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-15T20:04:09.653752" elapsed="0.000030"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:04:09.653847" 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-15T20:04:09.642423" elapsed="0.011568">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.654075" 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-15T20:04:09.494115" elapsed="0.160060">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.654458" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:09.654270" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:09.654253" elapsed="0.000303"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:09.654598" 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-15T20:04:09.488150" elapsed="0.166551">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.483010" elapsed="0.171791">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.482869" elapsed="0.171995">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.480422" elapsed="0.174539">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:09.480048" elapsed="0.174970">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:04:09.480025" elapsed="0.175025">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:09.655355" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:09.655117" elapsed="0.000330"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:09.655101" elapsed="0.000373"/>
</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-15T20:04:09.478534" elapsed="0.177027">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.672543" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:19.672175" elapsed="0.000449"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:19.672150" elapsed="0.000502"/>
</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-15T20:04:19.674356" 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-15T20:04:19.673867" elapsed="0.000519"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.674922" 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-15T20:04:19.674581" elapsed="0.000369"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:04:19.675001" elapsed="0.000299"/>
</return>
<msg time="2026-04-15T20:04:19.675442" 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-15T20:04:19.673415" elapsed="0.002053"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.676564" 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-15T20:04:19.676254" elapsed="0.000336"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:04:19.676637" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:04:19.676809" 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-15T20:04:19.675885" elapsed="0.000950"/>
</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-15T20:04:19.766983" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:19.766096" elapsed="0.000993"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:04:19.768932" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:19.768642" elapsed="0.000371">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:19.769216" 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-15T20:04:19.768127" elapsed="0.001194"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.771323" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:19.770312" elapsed="0.001109"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:04:19.772758" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:04:19.773031" 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-15T20:04:19.772424" elapsed="0.000703"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.774512" 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-15T20:04:19.774096" 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-15T20:04:19.776223" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:19.775947" elapsed="0.000327"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.776716" 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-15T20:04:19.776441" 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-15T20:04:19.777090" elapsed="0.000232"/>
</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-15T20:04:19.777522" 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-15T20:04:19.777714" elapsed="0.000049"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:04:19.776953" elapsed="0.000851"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:04:19.776813" elapsed="0.001023"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:04:19.777882" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:04:19.778072" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:04:19.775498" elapsed="0.002624"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:19.774912" elapsed="0.003253"/>
</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-15T20:04:19.778509" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:19.778230" elapsed="0.000360"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:19.774721" elapsed="0.003924"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.780530" 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-15T20:04:19.779794" elapsed="0.000833"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:04:19.780712" elapsed="0.000072"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:04:19.763712" elapsed="0.017320"/>
</kw>
<msg time="2026-04-15T20:04:19.781301" 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-15T20:04:19.713237" elapsed="0.068121"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:19.794164" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:19.806427" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:19.818695" 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-15T20:04:19.818916" 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-15T20:04:19.819100" 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-15T20:04:19.819532" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:19.819382" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:19.819367" elapsed="0.000349"/>
</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-15T20:04:19.819890" 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-15T20:04:19.820065" 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-15T20:04:19.820268" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:04:19.819335" elapsed="0.001024"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:04:19.819179" elapsed="0.001209"/>
</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-15T20:04:19.820538" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:19.820615" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:04:19.820731" 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-15T20:04:19.709028" elapsed="0.111748"/>
</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-15T20:04:19.822252" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:19.821827" elapsed="0.000564">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:19.822599" 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-15T20:04:19.821467" 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-15T20:04:19.822964" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:19.822698" elapsed="0.000325"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.823756" 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-15T20:04:19.823246" elapsed="0.000538"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:19.823047" elapsed="0.000773"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:19.822680" elapsed="0.001161"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.826256" 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-15T20:04:19.823995" elapsed="0.002288"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:04:19.826337" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:04:19.826490" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:19.821138" elapsed="0.005377"/>
</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-15T20:04:19.827901" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:19.827504" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:19.828263" 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-15T20:04:19.827167" elapsed="0.001122"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:04:19.828497" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:04:19.828361" elapsed="0.000195"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:19.828343" elapsed="0.000236"/>
</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-15T20:04:19.828723" elapsed="0.000044"/>
</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-15T20:04:19.828921" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:04:19.829012" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:04:19.831054" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:19.826840" elapsed="0.004240"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.832546" 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-15T20:04:19.832244" elapsed="0.000351"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:19.833089" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:19.832818" 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-15T20:04:19.839090" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.835275" elapsed="0.005693">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:19.833201" elapsed="0.007889">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.841357" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:19.841138" elapsed="0.000312"/>
</branch>
<status status="FAIL" start="2026-04-15T20:04:19.833183" elapsed="0.008299">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.842223" elapsed="0.000038"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:19.842413" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:04:19.842361" elapsed="0.000108"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:19.842338" elapsed="0.000160"/>
</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-15T20:04:19.842699" elapsed="0.000034"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:04:19.842821" 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-15T20:04:19.831418" elapsed="0.011555">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.843080" 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-15T20:04:19.686834" elapsed="0.156383">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.843592" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:19.843348" elapsed="0.000344"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:19.843325" elapsed="0.000399"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:19.843791" 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-15T20:04:19.680726" elapsed="0.163204">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.675676" elapsed="0.168347">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.675528" elapsed="0.168576">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.673007" elapsed="0.171226">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:19.672711" elapsed="0.171644">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:04:19.672694" elapsed="0.171712">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:19.844907" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:19.844517" elapsed="0.000471"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:19.844494" elapsed="0.000527"/>
</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-15T20:04:19.671620" elapsed="0.173511">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:29.860362" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:29.859983" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:29.859955" elapsed="0.000515"/>
</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-15T20:04:29.862367" 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-15T20:04:29.861665" elapsed="0.000733"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:04:29.862912" 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-15T20:04:29.862568" elapsed="0.000371"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:04:29.862989" elapsed="0.000303"/>
</return>
<msg time="2026-04-15T20:04:29.863447" 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-15T20:04:29.861223" elapsed="0.002251"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:29.864585" 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-15T20:04:29.864255" elapsed="0.000358"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:04:29.864662" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:04:29.864838" 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-15T20:04:29.863888" elapsed="0.000976"/>
</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-15T20:04:29.954158" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:29.953489" elapsed="0.000769"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:04:29.956299" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:29.956032" elapsed="0.000344">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:29.956570" 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-15T20:04:29.955268" elapsed="0.001399"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:29.958421" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:29.957689" elapsed="0.000831"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:04:29.960016" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:04:29.960291" 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-15T20:04:29.959673" elapsed="0.000768"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:29.961878" 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-15T20:04:29.961436" elapsed="0.000559"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:29.963588" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:29.963309" elapsed="0.000325"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:04:29.964114" 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-15T20:04:29.963817" elapsed="0.000325"/>
</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-15T20:04:29.964467" 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-15T20:04:29.964839" 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-15T20:04:29.965034" elapsed="0.000024"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:04:29.964330" elapsed="0.000766"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:04:29.964192" elapsed="0.000958"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:04:29.965196" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:04:29.965384" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:04:29.962921" elapsed="0.002512"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:29.962147" elapsed="0.003328"/>
</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-15T20:04:29.965839" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:29.965534" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:29.962096" elapsed="0.003882"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:04:29.968001" 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-15T20:04:29.967103" elapsed="0.001006"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:04:29.968198" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:04:29.951325" elapsed="0.017179"/>
</kw>
<msg time="2026-04-15T20:04:29.968785" 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-15T20:04:29.900889" elapsed="0.067953"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:29.981119" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:29.993306" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:30.005115" 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-15T20:04:30.005342" 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-15T20:04:30.005518" 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-15T20:04:30.005991" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:30.005844" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:30.005829" elapsed="0.000344"/>
</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-15T20:04:30.006317" 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-15T20:04:30.006488" 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-15T20:04:30.006655" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:04:30.005797" elapsed="0.000910"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:04:30.005626" elapsed="0.001124"/>
</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-15T20:04:30.006898" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:30.006974" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:04:30.007090" 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-15T20:04:29.896615" elapsed="0.110500"/>
</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-15T20:04:30.008538" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:30.008157" elapsed="0.000521">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:30.008904" 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-15T20:04:30.007813" elapsed="0.001116"/>
</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-15T20:04:30.009258" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:30.009001" elapsed="0.000314"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:30.010059" 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-15T20:04:30.009534" elapsed="0.000551"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:30.009339" elapsed="0.000782"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:30.008983" elapsed="0.001160"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:30.012500" 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-15T20:04:30.010294" elapsed="0.002232"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:04:30.012577" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:04:30.012728" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:30.007471" elapsed="0.005298"/>
</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-15T20:04:30.014166" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:30.013786" elapsed="0.000518">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:30.014510" 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-15T20:04:30.013422" elapsed="0.001114"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:04:30.014801" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-15T20:04:30.014607" elapsed="0.000255"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:30.014589" elapsed="0.000296"/>
</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-15T20:04:30.015030" 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-15T20:04:30.015201" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:04:30.015267" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:04:30.017315" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:30.013072" elapsed="0.004270"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:30.018825" 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-15T20:04:30.018524" elapsed="0.000348"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:30.019293" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:30.019027" elapsed="0.000310"/>
</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-15T20:04:30.024822" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:30.021498" elapsed="0.005056">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:30.019404" elapsed="0.007240">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:30.026860" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:30.026678" elapsed="0.000250"/>
</branch>
<status status="FAIL" start="2026-04-15T20:04:30.019386" elapsed="0.007565">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:30.027484" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:30.027619" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:04:30.027582" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:30.027565" elapsed="0.000116"/>
</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-15T20:04:30.027841" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:04:30.027917" 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-15T20:04:30.017684" elapsed="0.010342">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:30.028103" 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-15T20:04:29.874820" elapsed="0.153381">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:30.028498" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:30.028313" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:30.028296" elapsed="0.000303"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:30.028631" 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-15T20:04:29.868775" elapsed="0.159970">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:29.863688" elapsed="0.165167">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:29.863535" elapsed="0.165382">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:29.860809" elapsed="0.168203">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:29.860529" elapsed="0.168538">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:04:29.860513" elapsed="0.168585">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:30.029426" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:30.029165" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:30.029149" elapsed="0.000362"/>
</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-15T20:04:29.859402" elapsed="0.170190">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.046374" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:40.045583" elapsed="0.000946"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:40.045533" elapsed="0.001056"/>
</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-15T20:04:40.049834" 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-15T20:04:40.049338" elapsed="0.000525"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.050362" 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-15T20:04:40.050037" elapsed="0.000352"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:04:40.050439" elapsed="0.000315"/>
</return>
<msg time="2026-04-15T20:04:40.050908" 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-15T20:04:40.048366" elapsed="0.002569"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.052066" 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-15T20:04:40.051714" elapsed="0.000380"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:04:40.052143" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:04:40.052323" 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-15T20:04:40.051349" elapsed="0.001001"/>
</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-15T20:04:40.140600" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:40.139956" elapsed="0.000742"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:04:40.142613" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:40.142356" elapsed="0.000333">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:40.142905" 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-15T20:04:40.141662" elapsed="0.001403"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.144717" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:40.144039" elapsed="0.000793"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:04:40.146369" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:04:40.146633" 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-15T20:04:40.146054" elapsed="0.000673"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.148083" 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-15T20:04:40.147674" elapsed="0.000515"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.149561" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:40.149295" elapsed="0.000311"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.150085" 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-15T20:04:40.149812" elapsed="0.000299"/>
</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-15T20:04:40.150433" elapsed="0.000159"/>
</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-15T20:04:40.150954" 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-15T20:04:40.151137" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:04:40.150299" elapsed="0.000902"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:04:40.150161" elapsed="0.001072"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:04:40.151275" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:04:40.151458" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:04:40.148928" elapsed="0.002578"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:40.148351" elapsed="0.003196"/>
</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-15T20:04:40.151888" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:40.151603" elapsed="0.000364"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:40.148298" elapsed="0.003723"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.153692" 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-15T20:04:40.152986" elapsed="0.000970"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:04:40.154040" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:04:40.137539" elapsed="0.016796"/>
</kw>
<msg time="2026-04-15T20:04:40.154589" 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-15T20:04:40.087990" elapsed="0.066653"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:40.166781" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:40.178815" elapsed="0.000036"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:40.190711" 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-15T20:04:40.190926" 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-15T20:04:40.191101" 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-15T20:04:40.191509" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:40.191363" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:40.191349" elapsed="0.000338"/>
</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-15T20:04:40.191855" 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-15T20:04:40.192032" 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-15T20:04:40.192208" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:04:40.191318" elapsed="0.000943"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:04:40.191177" elapsed="0.001133"/>
</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-15T20:04:40.192458" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:40.192534" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:04:40.192649" 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-15T20:04:40.083893" elapsed="0.108782"/>
</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-15T20:04:40.194119" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:40.193717" elapsed="0.000549">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:40.194474" 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-15T20:04:40.193377" elapsed="0.001122"/>
</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-15T20:04:40.194834" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:40.194571" elapsed="0.000321"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.195615" 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-15T20:04:40.195110" elapsed="0.000532"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:40.194915" elapsed="0.000762"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:40.194553" elapsed="0.001145"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.198105" 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-15T20:04:40.195866" elapsed="0.002265"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:04:40.198184" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:04:40.198335" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:40.193052" elapsed="0.005307"/>
</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-15T20:04:40.199725" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:40.199340" elapsed="0.000543">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:40.200094" 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-15T20:04:40.198999" elapsed="0.001159"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:04:40.200404" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:04:40.200234" elapsed="0.000230"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:40.200215" elapsed="0.000272"/>
</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-15T20:04:40.200633" 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-15T20:04:40.200829" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:04:40.200897" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:04:40.204639" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:40.198660" elapsed="0.006006"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.206325" 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-15T20:04:40.206023" elapsed="0.000352"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:40.206832" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:40.206536" elapsed="0.000343"/>
</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-15T20:04:40.212951" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.209032" elapsed="0.005653">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:40.206951" elapsed="0.007840">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.214982" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:40.214826" elapsed="0.000223"/>
</branch>
<status status="FAIL" start="2026-04-15T20:04:40.206932" elapsed="0.008140">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.215607" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:40.215763" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:04:40.215709" elapsed="0.000099"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:40.215691" elapsed="0.000139"/>
</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-15T20:04:40.215978" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:04:40.216048" 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-15T20:04:40.205074" elapsed="0.011082">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.216238" 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-15T20:04:40.062221" elapsed="0.154153">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.216657" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:40.216478" elapsed="0.000308"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:40.216460" elapsed="0.000350"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:40.216844" 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-15T20:04:40.056196" elapsed="0.160751">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.051169" elapsed="0.165846">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.051015" elapsed="0.166061">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.047352" elapsed="0.169822">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:40.046718" elapsed="0.170550">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:04:40.046681" elapsed="0.170641">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:40.217805" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:40.217427" elapsed="0.000465"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:40.217402" elapsed="0.000524"/>
</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-15T20:04:40.044693" elapsed="0.173345">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.234144" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:50.233659" elapsed="0.000584"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:50.233628" 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-15T20:04:50.236503" 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-15T20:04:50.235888" elapsed="0.000649"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.237033" 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-15T20:04:50.236707" elapsed="0.000353"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:04:50.237110" elapsed="0.000039"/>
</return>
<msg time="2026-04-15T20:04:50.237278" 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-15T20:04:50.235271" elapsed="0.002032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.238617" 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-15T20:04:50.238302" elapsed="0.000342"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:04:50.238696" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:04:50.238865" 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-15T20:04:50.237943" elapsed="0.000947"/>
</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-15T20:04:50.326473" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:50.325856" elapsed="0.000716"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:04:50.328579" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:50.328318" elapsed="0.000340">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:50.328867" 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-15T20:04:50.327561" elapsed="0.001400"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.330577" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:50.329930" elapsed="0.000746"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:04:50.332246" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:04:50.332534" 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-15T20:04:50.331658" elapsed="0.000971"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.333981" 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-15T20:04:50.333571" 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-15T20:04:50.335450" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:50.335189" elapsed="0.000324"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.336147" 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-15T20:04:50.335682" elapsed="0.000491"/>
</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-15T20:04:50.336495" 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-15T20:04:50.336699" 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-15T20:04:50.336894" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:04:50.336359" elapsed="0.000594"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:04:50.336223" elapsed="0.000761"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:04:50.337027" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:04:50.337209" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:04:50.334814" elapsed="0.002444"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:50.334234" elapsed="0.003066"/>
</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-15T20:04:50.337628" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:50.337357" elapsed="0.000351"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:50.334183" elapsed="0.003595"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.339429" 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-15T20:04:50.338708" elapsed="0.000845"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:04:50.339641" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:04:50.323522" elapsed="0.016588"/>
</kw>
<msg time="2026-04-15T20:04:50.340364" 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-15T20:04:50.274370" elapsed="0.066048"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:50.352898" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:50.364937" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:04:50.376944" 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-15T20:04:50.377141" 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-15T20:04:50.377317" 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-15T20:04:50.377748" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:50.377586" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:50.377571" elapsed="0.000361"/>
</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-15T20:04:50.378077" 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-15T20:04:50.378248" 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-15T20:04:50.378416" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:04:50.377541" elapsed="0.000928"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:04:50.377393" elapsed="0.001102"/>
</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-15T20:04:50.378639" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:50.378714" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:04:50.378848" 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-15T20:04:50.270180" elapsed="0.108694"/>
</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-15T20:04:50.380329" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:50.379936" elapsed="0.000538">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:50.380683" 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-15T20:04:50.379577" elapsed="0.001131"/>
</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-15T20:04:50.381043" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:50.380796" elapsed="0.000305"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.381828" 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-15T20:04:50.381321" elapsed="0.000534"/>
</kw>
<status status="PASS" start="2026-04-15T20:04:50.381124" elapsed="0.000773"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:50.380777" elapsed="0.001142"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.384313" 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-15T20:04:50.382072" elapsed="0.002268"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:04:50.384391" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:04:50.384544" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:50.379230" elapsed="0.005339"/>
</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-15T20:04:50.385996" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:50.385592" elapsed="0.000544">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:04:50.386344" 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-15T20:04:50.385253" elapsed="0.001116"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:04:50.386583" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:04:50.386442" elapsed="0.000201"/>
</branch>
<status status="PASS" start="2026-04-15T20:04:50.386423" 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-15T20:04:50.386840" 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-15T20:04:50.387013" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:04:50.387078" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:04:50.389103" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:04:50.384925" elapsed="0.004205"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.390572" 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-15T20:04:50.390299" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:04:50.391102" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:04:50.390834" 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-15T20:04:50.397071" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.393252" elapsed="0.005496">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:50.391214" elapsed="0.007623">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.399024" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:50.398870" elapsed="0.000219"/>
</branch>
<status status="FAIL" start="2026-04-15T20:04:50.391196" elapsed="0.007916">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.399650" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:50.399804" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:04:50.399766" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:50.399748" elapsed="0.000119"/>
</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-15T20:04:50.400012" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:04:50.400081" 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-15T20:04:50.389474" elapsed="0.010714">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.400264" 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-15T20:04:50.248622" elapsed="0.151740">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.400667" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:50.400492" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:50.400475" elapsed="0.000304"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:04:50.400811" 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-15T20:04:50.242675" elapsed="0.158236">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.237501" elapsed="0.163476">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.237360" elapsed="0.163674">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.234716" elapsed="0.166411">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:04:50.234356" elapsed="0.166826">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:04:50.234335" elapsed="0.166878">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:04:50.401497" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:04:50.401280" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:04:50.401263" elapsed="0.000313"/>
</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-15T20:04:50.232975" elapsed="0.168680">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.416440" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:00.416085" elapsed="0.000429"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:00.416060" elapsed="0.000480"/>
</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-15T20:05:00.418160" 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-15T20:05:00.417692" elapsed="0.000496"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.418678" 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-15T20:05:00.418368" elapsed="0.000337"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:05:00.418774" elapsed="0.000295"/>
</return>
<msg time="2026-04-15T20:05:00.419206" 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-15T20:05:00.417275" 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-15T20:05:00.420276" 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-15T20:05:00.419973" elapsed="0.000396"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:05:00.420418" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:05:00.420568" 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-15T20:05:00.419603" elapsed="0.000991"/>
</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-15T20:05:00.510392" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:00.509748" elapsed="0.000754"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:05:00.512343" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:00.512079" elapsed="0.000341">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:00.512631" 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-15T20:05:00.511570" elapsed="0.001157"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.514636" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:00.513983" elapsed="0.000754"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:05:00.516045" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:05:00.516323" 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-15T20:05:00.515708" elapsed="0.000711"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.517969" 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-15T20:05:00.517554" 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-15T20:05:00.519507" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:00.519235" elapsed="0.000317"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.520004" 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-15T20:05:00.519713" 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-15T20:05:00.520357" elapsed="0.000204"/>
</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-15T20:05:00.520967" 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-15T20:05:00.521153" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:05:00.520222" elapsed="0.000988"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:05:00.520081" elapsed="0.001160"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:05:00.521285" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:05:00.521471" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:05:00.518824" elapsed="0.002696"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:00.518225" elapsed="0.003338"/>
</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-15T20:05:00.521906" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:00.521620" elapsed="0.000366"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:00.518172" elapsed="0.003867"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.523705" 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-15T20:05:00.522983" elapsed="0.000839"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:05:00.523907" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:05:00.507035" elapsed="0.017168"/>
</kw>
<msg time="2026-04-15T20:05:00.524456" 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-15T20:05:00.456804" elapsed="0.067767"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:00.536937" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:00.548882" elapsed="0.000027"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:00.560851" elapsed="0.000027"/>
</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-15T20:05:00.561046" 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-15T20:05:00.561223" 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-15T20:05:00.561629" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:00.561485" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:00.561471" 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-15T20:05:00.561987" 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-15T20:05:00.562157" 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-15T20:05:00.562324" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:05:00.561440" elapsed="0.000937"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:05:00.561297" elapsed="0.001106"/>
</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-15T20:05:00.562548" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:00.562623" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:05:00.562758" 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-15T20:05:00.452293" elapsed="0.110492"/>
</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-15T20:05:00.564294" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:00.563881" elapsed="0.000556">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:00.564643" 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-15T20:05:00.563517" elapsed="0.001151"/>
</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-15T20:05:00.565004" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:00.564757" elapsed="0.000303"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.565828" 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-15T20:05:00.565318" elapsed="0.000538"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:00.565084" elapsed="0.000808"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:00.564722" elapsed="0.001191"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.568297" 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-15T20:05:00.566065" elapsed="0.002259"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:05:00.568376" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:05:00.568534" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:00.563175" elapsed="0.005384"/>
</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-15T20:05:00.569940" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:00.569544" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:00.570289" 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-15T20:05:00.569205" elapsed="0.001109"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:05:00.570520" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:05:00.570385" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:00.570367" elapsed="0.000235"/>
</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-15T20:05:00.570770" 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-15T20:05:00.570943" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:05:00.571009" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:05:00.573039" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:00.568879" elapsed="0.004187"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.574522" 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-15T20:05:00.574251" elapsed="0.000317"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:00.575057" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:00.574722" elapsed="0.000379"/>
</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-15T20:05:00.580578" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.577204" elapsed="0.005084">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:00.575168" elapsed="0.007205">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.582562" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:00.582408" elapsed="0.000219"/>
</branch>
<status status="FAIL" start="2026-04-15T20:05:00.575150" elapsed="0.007500">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.583187" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:00.583322" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:05:00.583285" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:00.583268" elapsed="0.000115"/>
</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-15T20:05:00.583526" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:05:00.583630" 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-15T20:05:00.573409" elapsed="0.010381">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.583871" 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-15T20:05:00.430390" elapsed="0.153581">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.584242" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:00.584066" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:00.584049" elapsed="0.000287"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:00.584368" 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-15T20:05:00.424421" elapsed="0.160044">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.419432" elapsed="0.165100">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.419288" elapsed="0.165302">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.416889" elapsed="0.167795">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:00.416596" elapsed="0.168159">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:05:00.416581" elapsed="0.168208">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:00.585074" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:00.584857" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:00.584840" elapsed="0.000314"/>
</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-15T20:05:00.415546" elapsed="0.169686">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.601465" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:10.601082" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:10.601054" elapsed="0.000519"/>
</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-15T20:05:10.603237" 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-15T20:05:10.602745" elapsed="0.000522"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.603854" 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-15T20:05:10.603520" elapsed="0.000360"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:05:10.603931" elapsed="0.000325"/>
</return>
<msg time="2026-04-15T20:05:10.604398" 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-15T20:05:10.602291" elapsed="0.002132"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.605481" 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-15T20:05:10.605179" elapsed="0.000329"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:05:10.605555" elapsed="0.000033"/>
</return>
<msg time="2026-04-15T20:05:10.605752" 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-15T20:05:10.604828" elapsed="0.000951"/>
</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-15T20:05:10.693553" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:10.692932" elapsed="0.000719"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:05:10.695650" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:10.695391" elapsed="0.000335">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:10.695936" 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-15T20:05:10.694636" elapsed="0.001394"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.697694" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:10.697016" elapsed="0.000806"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:05:10.699250" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:05:10.699513" 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-15T20:05:10.698936" elapsed="0.000671"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.700988" 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-15T20:05:10.700575" elapsed="0.000517"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.702471" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:10.702210" elapsed="0.000310"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.703123" 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-15T20:05:10.702681" elapsed="0.000468"/>
</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-15T20:05:10.703468" 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-15T20:05:10.703833" 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-15T20:05:10.704015" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:05:10.703333" elapsed="0.000739"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:05:10.703198" elapsed="0.000906"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:05:10.704146" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:05:10.704352" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:05:10.701831" elapsed="0.002569"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:10.701238" elapsed="0.003203"/>
</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-15T20:05:10.704783" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:10.704497" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:10.701187" elapsed="0.003729"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.706580" 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-15T20:05:10.705874" elapsed="0.000841"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:05:10.706989" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:05:10.690501" elapsed="0.016786"/>
</kw>
<msg time="2026-04-15T20:05:10.707542" 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-15T20:05:10.640961" elapsed="0.066636"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:10.719685" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:10.731634" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:10.743590" elapsed="0.000035"/>
</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-15T20:05:10.743822" 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-15T20:05:10.744003" 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-15T20:05:10.744454" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:10.744288" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:10.744273" elapsed="0.000362"/>
</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-15T20:05:10.744811" 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-15T20:05:10.744982" 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-15T20:05:10.745150" elapsed="0.000024"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:05:10.744238" elapsed="0.000969"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:05:10.744082" elapsed="0.001152"/>
</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-15T20:05:10.745378" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:10.745454" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:05:10.745583" 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-15T20:05:10.636833" elapsed="0.108776"/>
</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-15T20:05:10.747184" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:10.746703" elapsed="0.000630">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:10.747543" 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-15T20:05:10.746331" elapsed="0.001237"/>
</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-15T20:05:10.747910" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:10.747641" elapsed="0.000326"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.748719" 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-15T20:05:10.748190" elapsed="0.000584"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:10.747991" elapsed="0.000821"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:10.747623" elapsed="0.001210"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.751222" 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-15T20:05:10.748987" elapsed="0.002261"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:05:10.751300" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:05:10.751453" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:10.745992" elapsed="0.005485"/>
</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-15T20:05:10.752885" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:10.752472" elapsed="0.000554">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:10.753234" 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-15T20:05:10.752118" elapsed="0.001142"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:05:10.753467" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:05:10.753331" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:10.753313" elapsed="0.000236"/>
</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-15T20:05:10.753693" 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-15T20:05:10.753926" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:05:10.753993" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:05:10.756020" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:10.751794" elapsed="0.004252"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.757534" 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-15T20:05:10.757260" elapsed="0.000320"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:10.758032" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:10.757764" 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-15T20:05:10.764005" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.760164" elapsed="0.005855">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:10.758142" elapsed="0.008003">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.766407" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:10.766192" elapsed="0.000305"/>
</branch>
<status status="FAIL" start="2026-04-15T20:05:10.758125" elapsed="0.008405">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.767323" elapsed="0.000037"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:10.767512" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:05:10.767461" elapsed="0.000108"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:10.767436" elapsed="0.000162"/>
</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-15T20:05:10.767821" elapsed="0.000030"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:05:10.767918" 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-15T20:05:10.756416" elapsed="0.011652">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.768174" 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-15T20:05:10.615403" elapsed="0.152906">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.768707" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:10.768460" elapsed="0.000385"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:10.768436" elapsed="0.000441"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:10.768922" 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-15T20:05:10.609546" elapsed="0.159514">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.604638" elapsed="0.164516">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.604486" elapsed="0.164751">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.601903" elapsed="0.167463">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:10.601630" elapsed="0.167811">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:05:10.601614" elapsed="0.167870">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:10.769932" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:10.769575" elapsed="0.000436"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:10.769553" elapsed="0.000490"/>
</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-15T20:05:10.600507" elapsed="0.169643">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.784023" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:20.783562" elapsed="0.000538"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:20.783538" elapsed="0.000589"/>
</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-15T20:05:20.786026" 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-15T20:05:20.785436" elapsed="0.000620"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.786567" 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-15T20:05:20.786252" elapsed="0.000341"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:05:20.786643" elapsed="0.000307"/>
</return>
<msg time="2026-04-15T20:05:20.787123" 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-15T20:05:20.784980" elapsed="0.002174"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.788289" 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-15T20:05:20.787973" elapsed="0.000343"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:05:20.788362" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:05:20.788523" 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-15T20:05:20.787584" 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-15T20:05:20.880673" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:20.880009" elapsed="0.000785"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:05:20.882600" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:20.882328" elapsed="0.000364">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:20.883143" 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-15T20:05:20.881827" elapsed="0.001413"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.884962" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:20.884249" elapsed="0.000812"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:05:20.886357" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:05:20.886632" 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-15T20:05:20.886034" elapsed="0.000874"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.888290" 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-15T20:05:20.887896" elapsed="0.000517"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.889924" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:20.889620" elapsed="0.000352"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.890644" 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-15T20:05:20.890154" elapsed="0.000519"/>
</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-15T20:05:20.891175" 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-15T20:05:20.891386" 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-15T20:05:20.891567" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:05:20.891032" elapsed="0.000600"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:05:20.890727" elapsed="0.000936"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:05:20.891795" elapsed="0.000037"/>
</return>
<msg time="2026-04-15T20:05:20.892011" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:05:20.889229" elapsed="0.002835"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:20.888577" elapsed="0.003530"/>
</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-15T20:05:20.892464" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:20.892166" elapsed="0.000382"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:20.888520" elapsed="0.004083"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.894456" 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-15T20:05:20.893627" elapsed="0.000928"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:05:20.894657" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:05:20.877495" elapsed="0.017627"/>
</kw>
<msg time="2026-04-15T20:05:20.895408" 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-15T20:05:20.825087" elapsed="0.070376"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:20.907905" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:20.920152" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:20.932401" 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-15T20:05:20.932598" 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-15T20:05:20.932790" 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-15T20:05:20.933253" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:20.933103" elapsed="0.000337"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:20.933087" 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-15T20:05:20.933677" 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-15T20:05:20.933892" 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-15T20:05:20.934065" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:05:20.933053" elapsed="0.001065"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:05:20.932897" 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-15T20:05:20.934291" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:20.934370" elapsed="0.000020"/>
</return>
<msg time="2026-04-15T20:05:20.934503" 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-15T20:05:20.820861" elapsed="0.113688"/>
</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-15T20:05:20.936076" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:20.935661" elapsed="0.000563">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:20.936437" 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-15T20:05:20.935310" elapsed="0.001153"/>
</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-15T20:05:20.936801" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:20.936536" elapsed="0.000326"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.937671" 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-15T20:05:20.937151" elapsed="0.000547"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:20.936919" elapsed="0.000843"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:20.936517" elapsed="0.001269"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.940175" 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-15T20:05:20.937947" elapsed="0.002255"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:05:20.940255" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:05:20.940409" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:20.934975" elapsed="0.005476"/>
</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-15T20:05:20.941962" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:20.941542" elapsed="0.000565">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:20.942325" 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-15T20:05:20.941163" elapsed="0.001195"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:05:20.942575" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:05:20.942438" elapsed="0.000197"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:20.942419" 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-15T20:05:20.942872" 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-15T20:05:20.943065" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:05:20.943132" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:05:20.946978" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:20.940774" elapsed="0.006233"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.948514" 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-15T20:05:20.948228" elapsed="0.000334"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:20.949106" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:20.948747" elapsed="0.000408"/>
</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-15T20:05:20.955213" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.951280" elapsed="0.005645">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:20.949228" elapsed="0.007788">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.957251" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:20.957091" elapsed="0.000228"/>
</branch>
<status status="FAIL" start="2026-04-15T20:05:20.949209" elapsed="0.008133">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.957890" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:20.958026" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:05:20.957989" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:20.957972" 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-15T20:05:20.958232" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:05:20.958304" 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-15T20:05:20.947361" elapsed="0.011049">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.958485" 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-15T20:05:20.798526" elapsed="0.160056">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.958885" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:20.958674" elapsed="0.000284"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:20.958657" elapsed="0.000323"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:20.959012" 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-15T20:05:20.792517" elapsed="0.166592">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.787381" elapsed="0.171792">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.787216" elapsed="0.172016">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.784526" elapsed="0.174800">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:20.784183" elapsed="0.175199">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:05:20.784167" elapsed="0.175246">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:20.959693" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:20.959477" elapsed="0.000361"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:20.959461" elapsed="0.000404"/>
</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-15T20:05:20.783020" elapsed="0.176925">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:30.973059" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:30.972680" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:30.972654" elapsed="0.000511"/>
</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-15T20:05:30.974867" 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-15T20:05:30.974383" elapsed="0.000514"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:05:30.975418" 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-15T20:05:30.975069" elapsed="0.000376"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:05:30.975495" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T20:05:30.975663" 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-15T20:05:30.973949" elapsed="0.001739"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:30.977039" 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-15T20:05:30.976714" elapsed="0.000352"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:05:30.977113" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:05:30.977261" 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-15T20:05:30.976349" elapsed="0.000938"/>
</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-15T20:05:31.076035" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:31.075384" elapsed="0.000758"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:05:31.078161" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:31.077628" elapsed="0.000617">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:31.078447" 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-15T20:05:31.077131" elapsed="0.001411"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.080295" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:31.079594" elapsed="0.000803"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:05:31.081701" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:05:31.082228" 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-15T20:05:31.081380" elapsed="0.000955"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.083755" 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-15T20:05:31.083327" elapsed="0.000542"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.085291" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:31.085022" elapsed="0.000323"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.085970" 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-15T20:05:31.085512" elapsed="0.000486"/>
</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-15T20:05:31.086328" elapsed="0.000124"/>
</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-15T20:05:31.086653" 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-15T20:05:31.086855" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:05:31.086188" elapsed="0.000726"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:05:31.086050" elapsed="0.000895"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:05:31.086989" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:05:31.087178" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:05:31.084621" elapsed="0.002645"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:31.084025" elapsed="0.003287"/>
</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-15T20:05:31.087662" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:31.087381" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:31.083971" elapsed="0.003909"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.089640" 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-15T20:05:31.088903" elapsed="0.001009"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:05:31.090004" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:05:31.072873" elapsed="0.017433"/>
</kw>
<msg time="2026-04-15T20:05:31.090575" 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-15T20:05:31.021934" elapsed="0.068700"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:31.103473" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:31.115635" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:31.127804" 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-15T20:05:31.128015" 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-15T20:05:31.128195" 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-15T20:05:31.128621" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:31.128470" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:31.128456" 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-15T20:05:31.128989" 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-15T20:05:31.129165" 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-15T20:05:31.129335" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:05:31.128423" elapsed="0.001002"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:05:31.128273" elapsed="0.001183"/>
</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-15T20:05:31.129606" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:31.129684" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:05:31.129822" 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-15T20:05:31.017578" elapsed="0.112272"/>
</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-15T20:05:31.131368" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:31.130946" elapsed="0.000566">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:31.131723" 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-15T20:05:31.130570" elapsed="0.001194"/>
</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-15T20:05:31.132101" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:31.131841" elapsed="0.000319"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.132910" 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-15T20:05:31.132390" elapsed="0.000548"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:31.132185" elapsed="0.000798"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:31.131821" elapsed="0.001190"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.135489" 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-15T20:05:31.133171" elapsed="0.002345"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:05:31.135569" elapsed="0.000030"/>
</return>
<msg time="2026-04-15T20:05:31.135726" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:31.130232" elapsed="0.005536"/>
</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-15T20:05:31.137189" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:31.136789" elapsed="0.000543">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:31.137542" 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-15T20:05:31.136421" elapsed="0.001146"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:05:31.137810" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:05:31.137644" elapsed="0.000225"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:31.137622" 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-15T20:05:31.138047" elapsed="0.000027"/>
</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-15T20:05:31.138248" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:05:31.138315" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:05:31.140460" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:31.136088" elapsed="0.004400"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.142028" 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-15T20:05:31.141723" elapsed="0.000352"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:31.142516" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:31.142241" elapsed="0.000320"/>
</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-15T20:05:31.148544" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:31.144772" elapsed="0.005562">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:31.142629" elapsed="0.007794">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:31.150614" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:31.150458" elapsed="0.000223"/>
</branch>
<status status="FAIL" start="2026-04-15T20:05:31.142611" elapsed="0.008095">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:31.151327" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:31.151470" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:05:31.151432" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:31.151415" elapsed="0.000119"/>
</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-15T20:05:31.151687" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:05:31.151777" elapsed="0.000017"/>
</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-15T20:05:31.140890" elapsed="0.011001">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:31.151970" 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-15T20:05:30.988041" elapsed="0.164032">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:31.152356" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:31.152170" elapsed="0.000267"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:31.152153" elapsed="0.000308"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:31.152494" 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-15T20:05:30.981092" elapsed="0.171502">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:30.975915" elapsed="0.176746">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:30.975762" elapsed="0.176958">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:30.973529" elapsed="0.179304">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:30.973223" elapsed="0.179712">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:05:30.973207" elapsed="0.179763">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:31.153266" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:31.153039" elapsed="0.000297"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:31.153022" elapsed="0.000340"/>
</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-15T20:05:30.972123" elapsed="0.181320">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.169518" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:41.169171" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:41.169147" elapsed="0.000474"/>
</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-15T20:05:41.171353" 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-15T20:05:41.170883" elapsed="0.000499"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.171880" 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-15T20:05:41.171549" elapsed="0.000357"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:05:41.171956" elapsed="0.000307"/>
</return>
<msg time="2026-04-15T20:05:41.172400" 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-15T20:05:41.170368" elapsed="0.002085"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.173537" 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-15T20:05:41.173224" elapsed="0.000340"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:05:41.173611" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:05:41.173786" 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-15T20:05:41.172852" elapsed="0.000961"/>
</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-15T20:05:41.262820" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:41.262169" elapsed="0.000752"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:05:41.264928" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:41.264653" elapsed="0.000358">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:41.265204" 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-15T20:05:41.264149" elapsed="0.001149"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.266956" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:41.266278" elapsed="0.000774"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:05:41.268511" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:05:41.268805" 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-15T20:05:41.268177" elapsed="0.000780"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.270300" 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-15T20:05:41.269905" elapsed="0.000502"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.271970" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:41.271537" elapsed="0.000478"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.272450" 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-15T20:05:41.272179" elapsed="0.000308"/>
</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-15T20:05:41.272821" elapsed="0.000172"/>
</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-15T20:05:41.273183" 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-15T20:05:41.273362" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:05:41.272672" elapsed="0.000748"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:05:41.272537" elapsed="0.000914"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:05:41.273495" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:05:41.273678" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:05:41.271158" elapsed="0.002568"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:41.270556" elapsed="0.003228"/>
</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-15T20:05:41.274125" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:41.273842" elapsed="0.000362"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:41.270503" elapsed="0.003755"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.275959" 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-15T20:05:41.275214" elapsed="0.000843"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:05:41.276143" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:05:41.260039" elapsed="0.016402"/>
</kw>
<msg time="2026-04-15T20:05:41.276781" 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-15T20:05:41.209898" elapsed="0.066941"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:41.289150" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:41.301125" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:41.313079" 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-15T20:05:41.313275" 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-15T20:05:41.313459" 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-15T20:05:41.313936" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:41.313789" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:41.313772" elapsed="0.000346"/>
</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-15T20:05:41.314261" 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-15T20:05:41.314431" elapsed="0.000025"/>
</kw>
<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-15T20:05:41.314606" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:05:41.313716" elapsed="0.000943"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:05:41.313570" elapsed="0.001115"/>
</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-15T20:05:41.314848" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:41.314926" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:05:41.315043" 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-15T20:05:41.205700" elapsed="0.109368"/>
</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-15T20:05:41.316508" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:41.316117" elapsed="0.000532">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:41.316873" 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-15T20:05:41.315769" elapsed="0.001129"/>
</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-15T20:05:41.317217" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:41.316971" elapsed="0.000304"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.318023" 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-15T20:05:41.317500" elapsed="0.000550"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:41.317298" elapsed="0.000792"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:41.316953" elapsed="0.001181"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.320551" 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-15T20:05:41.318298" elapsed="0.002281"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:05:41.320631" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:05:41.320800" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:41.315426" elapsed="0.005400"/>
</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-15T20:05:41.322210" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:41.321829" elapsed="0.000519">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:41.322556" 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-15T20:05:41.321457" elapsed="0.001125"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:05:41.322851" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-04-15T20:05:41.322655" elapsed="0.000255"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:41.322637" elapsed="0.000296"/>
</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-15T20:05:41.323084" 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-15T20:05:41.323257" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:05:41.323322" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:05:41.325406" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:41.321131" elapsed="0.004302"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.326933" 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-15T20:05:41.326626" elapsed="0.000353"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:41.327402" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:41.327135" elapsed="0.000311"/>
</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-15T20:05:41.332788" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.329556" elapsed="0.004889">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:41.327515" elapsed="0.007019">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.334718" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:41.334567" elapsed="0.000239"/>
</branch>
<status status="FAIL" start="2026-04-15T20:05:41.327496" elapsed="0.007333">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.335344" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:41.335479" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:05:41.335443" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:41.335426" elapsed="0.000116"/>
</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-15T20:05:41.335687" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:05:41.335774" 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-15T20:05:41.325803" elapsed="0.010082">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.335962" 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-15T20:05:41.183758" elapsed="0.152304">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.336332" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:41.336156" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:41.336140" elapsed="0.000287"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:41.336460" 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-15T20:05:41.177650" elapsed="0.158936">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.172659" elapsed="0.164030">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.172512" elapsed="0.164254">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.169959" elapsed="0.166905">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:41.169677" elapsed="0.167244">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:05:41.169662" elapsed="0.167295">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:41.337246" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:41.337025" elapsed="0.000278"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:41.337009" elapsed="0.000318"/>
</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-15T20:05:41.168626" elapsed="0.168780">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.352162" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:51.351801" elapsed="0.000435"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:51.351775" elapsed="0.000488"/>
</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-15T20:05:51.353889" 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-15T20:05:51.353401" elapsed="0.000517"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.354395" 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-15T20:05:51.354085" elapsed="0.000336"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:05:51.354470" elapsed="0.000296"/>
</return>
<msg time="2026-04-15T20:05:51.354904" 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-15T20:05:51.352977" elapsed="0.001953"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.355981" 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-15T20:05:51.355659" elapsed="0.000350"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:05:51.356055" elapsed="0.000029"/>
</return>
<msg time="2026-04-15T20:05:51.356204" 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-15T20:05:51.355301" 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-15T20:05:51.445245" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:51.444593" elapsed="0.000750"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:05:51.447157" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:51.446888" elapsed="0.000348">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:51.447426" 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-15T20:05:51.446356" elapsed="0.001223"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.449440" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:51.448784" elapsed="0.000753"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:05:51.451014" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:05:51.451280" 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-15T20:05:51.450688" elapsed="0.000688"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.452778" 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-15T20:05:51.452348" elapsed="0.000539"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.454450" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:51.454179" elapsed="0.000317"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.454948" 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-15T20:05:51.454660" elapsed="0.000327"/>
</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-15T20:05:51.455331" 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-15T20:05:51.455687" 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-15T20:05:51.455887" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:05:51.455195" elapsed="0.000752"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:05:51.455053" elapsed="0.000926"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:05:51.456021" elapsed="0.000031"/>
</return>
<msg time="2026-04-15T20:05:51.456209" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:05:51.453599" elapsed="0.002658"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:51.453036" elapsed="0.003261"/>
</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-15T20:05:51.456622" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:51.456353" elapsed="0.000349"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:51.452984" elapsed="0.003802"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.458766" 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-15T20:05:51.457720" elapsed="0.001144"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:05:51.458948" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:05:51.442457" elapsed="0.016785"/>
</kw>
<msg time="2026-04-15T20:05:51.459495" 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-15T20:05:51.391970" elapsed="0.067579"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:51.471647" elapsed="0.000028"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:51.483532" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:05:51.495443" 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-15T20:05:51.495642" 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-15T20:05:51.495836" 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-15T20:05:51.496253" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:51.496106" elapsed="0.000301"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:51.496091" elapsed="0.000342"/>
</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-15T20:05:51.496578" 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-15T20:05:51.496774" 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-15T20:05:51.496946" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:05:51.496058" elapsed="0.000941"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:05:51.495914" elapsed="0.001111"/>
</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-15T20:05:51.497169" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:51.497243" elapsed="0.000016"/>
</return>
<msg time="2026-04-15T20:05:51.497362" 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-15T20:05:51.387761" elapsed="0.109627"/>
</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-15T20:05:51.498867" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:51.498462" elapsed="0.000549">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:51.499225" 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-15T20:05:51.498109" elapsed="0.001148"/>
</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-15T20:05:51.499602" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:51.499346" elapsed="0.000312"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.500384" 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-15T20:05:51.499894" elapsed="0.000516"/>
</kw>
<status status="PASS" start="2026-04-15T20:05:51.499682" elapsed="0.000764"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:51.499324" elapsed="0.001143"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.502912" 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-15T20:05:51.500617" elapsed="0.002321"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:05:51.502990" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:05:51.503141" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:51.497758" elapsed="0.005408"/>
</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-15T20:05:51.504561" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:51.504180" elapsed="0.000520">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:05:51.504940" 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-15T20:05:51.503843" elapsed="0.001160"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:05:51.505216" elapsed="0.000030"/>
</return>
<status status="PASS" start="2026-04-15T20:05:51.505079" elapsed="0.000201"/>
</branch>
<status status="PASS" start="2026-04-15T20:05:51.505060" 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-15T20:05:51.505451" 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-15T20:05:51.505624" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:05:51.505690" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:05:51.507834" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:05:51.503506" elapsed="0.004355"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.509325" 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-15T20:05:51.509051" elapsed="0.000320"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:05:51.509836" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:05:51.509527" 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-15T20:05:51.516542" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.511958" elapsed="0.006313">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:51.509948" elapsed="0.008413">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.518578" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:51.518402" elapsed="0.000241"/>
</branch>
<status status="FAIL" start="2026-04-15T20:05:51.509930" elapsed="0.008736">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.519204" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:51.519339" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:05:51.519302" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:51.519285" 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-15T20:05:51.519546" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:05:51.519615" 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-15T20:05:51.508208" elapsed="0.011514">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.519815" 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-15T20:05:51.366006" elapsed="0.153906">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.520184" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:51.520007" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:51.519990" elapsed="0.000354"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:05:51.520388" 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-15T20:05:51.360086" elapsed="0.160404">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.355131" elapsed="0.165427">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.354987" elapsed="0.165631">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.352575" elapsed="0.168138">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:05:51.352319" elapsed="0.168478">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:05:51.352304" elapsed="0.168527">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:05:51.521117" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:05:51.520898" elapsed="0.000275"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:05:51.520882" elapsed="0.000315"/>
</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-15T20:05:51.351265" elapsed="0.170009">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.538259" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.537731" elapsed="0.000627"/>
</branch>
<status status="PASS" start="2026-04-15T20:06:01.537696" elapsed="0.000697"/>
</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-15T20:06:01.540109" 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-15T20:06:01.539637" elapsed="0.000501"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.540852" 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-15T20:06:01.540302" elapsed="0.000577"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:06:01.540929" elapsed="0.000038"/>
</return>
<msg time="2026-04-15T20:06:01.541096" 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-15T20:06:01.539216" elapsed="0.001904"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.542191" 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-15T20:06:01.541886" elapsed="0.000333"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-15T20:06:01.542264" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:06:01.542412" 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-15T20:06:01.541489" 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-15T20:06:01.630521" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:06:01.629911" elapsed="0.000708"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-15T20:06:01.632630" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:06:01.632374" elapsed="0.000331">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-15T20:06:01.632921" 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-15T20:06:01.631597" elapsed="0.001418"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.634627" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:06:01.633985" elapsed="0.000738"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-15T20:06:01.636209" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-15T20:06:01.636464" 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-15T20:06:01.635688" elapsed="0.000870"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.637904" 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-15T20:06:01.637496" elapsed="0.000513"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.639408" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:06:01.639140" elapsed="0.000313"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.640234" 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-15T20:06:01.639615" elapsed="0.000645"/>
</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-15T20:06:01.640578" 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-15T20:06:01.640803" 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-15T20:06:01.640983" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-15T20:06:01.640443" elapsed="0.000597"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-15T20:06:01.640309" elapsed="0.000763"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-15T20:06:01.641115" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:06:01.641296" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-15T20:06:01.638729" elapsed="0.002615"/>
</kw>
<status status="PASS" start="2026-04-15T20:06:01.638158" elapsed="0.003228"/>
</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-15T20:06:01.641711" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.641443" elapsed="0.000368"/>
</branch>
<status status="PASS" start="2026-04-15T20:06:01.638107" elapsed="0.003758"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.643526" 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-15T20:06:01.642822" elapsed="0.000801"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-15T20:06:01.643706" elapsed="0.000270"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-15T20:06:01.627534" elapsed="0.016691"/>
</kw>
<msg time="2026-04-15T20:06:01.644478" 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-15T20:06:01.577950" elapsed="0.066581"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:01.656540" 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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:01.668427" elapsed="0.000051"/>
</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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-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-sanity-only-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:01.680392" 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-15T20:06:01.680585" 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-15T20:06:01.680823" 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-15T20:06:01.681237" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.681091" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:01.681076" elapsed="0.000344"/>
</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-15T20:06:01.681563" 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-15T20:06:01.681735" elapsed="0.000045"/>
</kw>
<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-15T20:06:01.681931" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-15T20:06:01.681045" elapsed="0.000940"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-15T20:06:01.680902" elapsed="0.001109"/>
</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-15T20:06:01.682156" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-15T20:06:01.682231" elapsed="0.000015"/>
</return>
<msg time="2026-04-15T20:06:01.682346" 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-15T20:06:01.573613" elapsed="0.108758"/>
</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-15T20:06:01.683811" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:06:01.683409" elapsed="0.000545">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-15T20:06:01.684165" 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-15T20:06:01.683069" elapsed="0.001121"/>
</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-15T20:06:01.684510" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.684261" elapsed="0.000306"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.685327" 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-15T20:06:01.684831" elapsed="0.000522"/>
</kw>
<status status="PASS" start="2026-04-15T20:06:01.684591" elapsed="0.000798"/>
</branch>
<status status="PASS" start="2026-04-15T20:06:01.684243" elapsed="0.001168"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.687818" 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-15T20:06:01.685561" elapsed="0.002284"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-15T20:06:01.687896" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:06:01.688046" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:06:01.682726" elapsed="0.005344"/>
</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-15T20:06:01.689489" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:06:01.689102" elapsed="0.000535">File '/w/workspace/openflowplugin-csit-1node-sanity-only-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-15T20:06:01.689881" 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-15T20:06:01.688728" elapsed="0.001179"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-15T20:06:01.690114" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-15T20:06:01.689979" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-15T20:06:01.689962" elapsed="0.000234"/>
</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-15T20:06:01.690342" 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-15T20:06:01.690514" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-15T20:06:01.690578" elapsed="0.000014"/>
</return>
<msg time="2026-04-15T20:06:01.694273" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-sanity-only-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-15T20:06:01.688405" elapsed="0.005896"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.695803" 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-15T20:06:01.695510" elapsed="0.000341"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.696273" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:06:01.696007" elapsed="0.000311"/>
</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-15T20:06:01.701662" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.698421" elapsed="0.004911">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:06:01.696386" elapsed="0.007033">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.703606" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.703453" elapsed="0.000218"/>
</branch>
<status status="FAIL" start="2026-04-15T20:06:01.696368" elapsed="0.007326">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.704226" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-15T20:06:01.704362" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:06:01.704326" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:01.704309" elapsed="0.000115"/>
</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-15T20:06:01.704566" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-15T20:06:01.704635" 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-15T20:06:01.694644" elapsed="0.010101">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.704837" 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-15T20:06:01.552105" elapsed="0.152830">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.705286" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.705089" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:01.705072" elapsed="0.000311"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-15T20:06:01.705414" 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-15T20:06:01.546259" elapsed="0.159254">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.541319" elapsed="0.164262">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.541176" elapsed="0.164463">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.538832" elapsed="0.166899">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-15T20:06:01.538473" elapsed="0.167345">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-15T20:06:01.538449" elapsed="0.167401">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.706134" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.705917" elapsed="0.000274"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:01.705900" elapsed="0.000315"/>
</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-15T20:06:01.537039" elapsed="0.169253">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T20:06:01.706393" level="FAIL">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:54.831956" elapsed="366.874531">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:01.709894" 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-15T20:06:01.709477" elapsed="0.000444"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.710388" 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-15T20:06:01.710083" elapsed="0.000330"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-15T20:06:01.710458" elapsed="0.000028"/>
</return>
<msg time="2026-04-15T20:06:01.710612" 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-15T20:06:01.709041" elapsed="0.001595"/>
</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-15T20:06:01.711775" level="INFO">${member_ip} = 10.30.170.185</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-15T20:06:01.711487" elapsed="0.000315"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T20:06:01.767027" level="INFO">index=20
host=10.30.171.133
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-15T20:06:01.767193" level="INFO">${current_connection} = index=20
host=10.30.171.133
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-15T20:06:01.712464" elapsed="0.054759"/>
</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-15T20:06:01.770530" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:01.770206" elapsed="0.000400"/>
</branch>
<status status="PASS" start="2026-04-15T20:06:01.770183" elapsed="0.000449"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T20:06:01.770910" level="INFO">index=20
host=10.30.171.133
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-15T20:06:01.771011" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.133
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-15T20:06:01.770800" elapsed="0.000238"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.771814" level="INFO">Attempting to execute command "netstat -pnatu | grep 2550" on remote system "10.30.170.185" 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-15T20:06:01.771191" elapsed="0.000672"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T20:06:01.772542" level="INFO">${conn_id} = 29</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-15T20:06:01.772027" elapsed="0.000542"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T20:06:01.774026" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T20:06:01.774166" 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-15T20:06:01.773312" elapsed="0.000892"/>
</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-15T20:06:01.774433" elapsed="0.000677"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T20:06:01.777301" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T20:06:02.441379" 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 Wed Apr 15 20:06:02 UTC 2026

  System load:  0.0                Processes:             117
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 19:59:54 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T20:06:01.776811" elapsed="0.664772"/>
</kw>
<msg time="2026-04-15T20:06:02.441666" 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-15T20:06:01.775383" elapsed="0.666414"/>
</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-15T20:06:01.772804" elapsed="0.669211"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T20:06:02.442456" level="INFO">Executing command 'netstat -pnatu | grep 2550'.</msg>
<msg time="2026-04-15T20:06:02.454857" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-04-15T20:06:02.455009" level="INFO">${stdout} = </msg>
<msg time="2026-04-15T20:06:02.455071" 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-15T20:06:02.442207" elapsed="0.012896"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T20:06:02.455339" elapsed="0.000304"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:06:02.456627" 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-15T20:06:02.456101" elapsed="0.000596"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T20:06:02.457029" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:06:02.456849" elapsed="0.000249"/>
</branch>
<status status="PASS" start="2026-04-15T20:06:02.456817" elapsed="0.000312"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-15T20:06:02.457348" elapsed="0.000036"/>
</return>
<status status="PASS" start="2026-04-15T20:06:02.457204" elapsed="0.000226"/>
</branch>
<status status="PASS" start="2026-04-15T20:06:02.457183" elapsed="0.000281"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T20:06:02.457510" elapsed="0.000019"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-15T20:06:02.480619" elapsed="0.000396"/>
</kw>
<msg time="2026-04-15T20:06:02.481103" 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-15T20:06:02.478431" elapsed="0.002815"/>
</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-15T20:06:02.481466" elapsed="0.000024"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:02.481658" 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-15T20:06:02.457971" elapsed="0.023775"/>
</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-15T20:06:01.769595" elapsed="0.712261"/>
</kw>
<msg time="2026-04-15T20:06:02.481910" 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-15T20:06:01.768901" elapsed="0.713072"/>
</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-15T20:06:01.768282" elapsed="0.713770"/>
</kw>
<msg time="2026-04-15T20:06:02.482093" 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-15T20:06:01.767458" elapsed="0.714691"/>
</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-15T20:06:02.486123" elapsed="0.000151"/>
</kw>
<msg time="2026-04-15T20:06:02.486319" 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-15T20:06:02.485599" elapsed="0.000782"/>
</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-15T20:06:02.486542" elapsed="0.000022"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:02.486706" elapsed="0.000021"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T20:06:02.482445" elapsed="0.004365"/>
</kw>
<msg time="2026-04-15T20:06:02.486907" 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-15T20:06:01.712019" elapsed="0.774913"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:06:02.487393" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:06:02.487131" elapsed="0.000304"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T20:06:02.487478" elapsed="0.000028"/>
</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-15T20:06:01.711053" elapsed="0.776554"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-15T20:06:01.710877" elapsed="0.776769"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-15T20:06:01.710719" elapsed="0.776963"/>
</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-15T20:06:01.706855" elapsed="0.780892"/>
</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-15T19:59:54.435773" elapsed="368.052074">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:52.950878" elapsed="369.537135">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T20:06:02.492764" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:02.694862" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:03.098108" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:03.100343" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:02.490088" elapsed="0.615447">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:03.106183" 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-15T20:06:03.107256" 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-15T20:06:03.107779" 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-15T20:06:03.108227" 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-15T20:06:03.108670" elapsed="0.000131"/>
</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-15T20:06:03.109203" 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-15T20:06:03.109639" 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-15T20:06:03.109939" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:03.109745" elapsed="0.000250"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:03.109721" elapsed="0.000301"/>
</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-15T20:06:03.110248" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:03.110075" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:03.110060" 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-15T20:06:03.110548" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:03.110377" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:03.110362" elapsed="0.000263"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:03.106874" elapsed="0.003775"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:03.106359" elapsed="0.004318"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:02.489734" elapsed="0.621068">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:05.117808" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:05.319903" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:05.721834" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:05.723667" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:05.113193" elapsed="0.616087">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:05.729873" 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-15T20:06:05.730488" 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-15T20:06:05.730792" 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-15T20:06:05.731071" 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-15T20:06:05.731346" 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-15T20:06:05.731622" 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-15T20:06:05.731925" 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-15T20:06:05.732306" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:05.732059" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:05.732032" elapsed="0.000385"/>
</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-15T20:06:05.732735" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:05.732490" elapsed="0.000343"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:05.732468" elapsed="0.000398"/>
</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-15T20:06:05.733239" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:05.732970" elapsed="0.000364"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:05.732946" elapsed="0.000421"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:05.730251" elapsed="0.003147"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:05.729984" elapsed="0.003451"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:05.112200" elapsed="0.621377">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:07.740791" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:07.942621" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:08.345800" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:08.348053" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:07.735999" elapsed="0.617384">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:08.354073" 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-15T20:06:08.355086" 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-15T20:06:08.355438" 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-15T20:06:08.355637" 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-15T20:06:08.355851" 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-15T20:06:08.356048" 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-15T20:06:08.356325" 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-15T20:06:08.356602" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:08.356425" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:08.356404" 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-15T20:06:08.356934" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:08.356758" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:08.356725" 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-15T20:06:08.357243" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:08.357070" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:08.357054" elapsed="0.000268"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:08.354678" elapsed="0.002667"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:08.354254" elapsed="0.003118"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:07.735006" elapsed="0.622474">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:10.364791" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:10.566927" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:10.969235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:10.971630" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:10.360549" elapsed="0.616740">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:10.977966" elapsed="0.000080"/>
</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-15T20:06:10.979109" 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-15T20:06:10.979368" 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-15T20:06:10.979581" 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-15T20:06:10.979800" 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-15T20:06:10.980013" 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-15T20:06:10.980254" 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-15T20:06:10.980563" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:10.980382" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:10.980358" 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-15T20:06:10.980890" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:10.980700" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:10.980685" 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-15T20:06:10.981235" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:10.981029" elapsed="0.000286"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:10.981005" elapsed="0.000406"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:10.978782" elapsed="0.002659"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:10.978201" elapsed="0.003268"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:10.359571" elapsed="0.622013">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:12.988449" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:13.190670" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:13.593654" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:13.596018" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:12.983857" elapsed="0.617389">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:13.601969" 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-15T20:06:13.602480" 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-15T20:06:13.602686" 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-15T20:06:13.602909" 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-15T20:06:13.603109" 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-15T20:06:13.603307" 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-15T20:06:13.603507" 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-15T20:06:13.603795" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:13.603603" elapsed="0.000249"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:13.603583" elapsed="0.000294"/>
</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-15T20:06:13.604101" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:13.603930" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:13.603915" 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-15T20:06:13.604407" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:13.604233" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:13.604218" elapsed="0.000268"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:13.602305" elapsed="0.002204"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:13.602084" elapsed="0.002452"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:12.982931" elapsed="0.621712">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:15.611967" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:15.813791" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:16.215850" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:16.218331" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:15.607095" elapsed="0.616463">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:16.224218" 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-15T20:06:16.225124" 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-15T20:06:16.225328" 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-15T20:06:16.225523" 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-15T20:06:16.225718" 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-15T20:06:16.225931" 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-15T20:06:16.226136" 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-15T20:06:16.226416" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:16.226236" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:16.226215" 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-15T20:06:16.226719" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:16.226551" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:16.226536" 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-15T20:06:16.227036" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:16.226866" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:16.226851" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:16.224919" elapsed="0.002217"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:16.224398" elapsed="0.002766"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:15.605999" elapsed="0.621277">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:18.234560" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:18.435935" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:18.837925" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:18.840109" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:18.230110" elapsed="0.615044">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:18.845565" 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-15T20:06:18.846217" 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-15T20:06:18.846503" 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-15T20:06:18.846796" 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-15T20:06:18.847150" 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-15T20:06:18.847427" 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-15T20:06:18.847703" elapsed="0.000046"/>
</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-15T20:06:18.848101" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:18.847857" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:18.847830" 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-15T20:06:18.848536" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:18.848293" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:18.848264" elapsed="0.000398"/>
</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-15T20:06:18.848994" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:18.848752" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:18.848714" elapsed="0.000414"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:18.845979" elapsed="0.003188"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:18.845677" elapsed="0.003534"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:18.229212" elapsed="0.620150">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:20.856134" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:21.058229" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:21.460941" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:21.463418" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:20.851577" elapsed="0.616967">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:21.469186" 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-15T20:06:21.470204" 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-15T20:06:21.470673" 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-15T20:06:21.471221" 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-15T20:06:21.471451" 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-15T20:06:21.471648" 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-15T20:06:21.471870" 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-15T20:06:21.472148" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:21.471969" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:21.471950" 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-15T20:06:21.472451" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:21.472281" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:21.472266" elapsed="0.000324"/>
</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-15T20:06:21.472836" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:21.472647" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:21.472631" elapsed="0.000284"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:21.469826" elapsed="0.003112"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:21.469361" elapsed="0.003605"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:20.850635" elapsed="0.622438">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:23.480023" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:23.681934" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:24.083992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:24.086260" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:23.475363" elapsed="0.616325">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:24.092325" 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-15T20:06:24.092980" 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-15T20:06:24.093263" 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-15T20:06:24.093538" 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-15T20:06:24.093831" 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-15T20:06:24.094109" 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-15T20:06:24.094385" 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-15T20:06:24.094782" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:24.094519" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:24.094492" 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-15T20:06:24.095205" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:24.094968" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:24.094946" elapsed="0.000365"/>
</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-15T20:06:24.095632" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:24.095383" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:24.095362" elapsed="0.000403"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:24.092722" elapsed="0.003077"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:24.092441" elapsed="0.003394"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:23.474354" elapsed="0.621629">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:26.103633" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:26.305488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:26.707397" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:26.709246" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:26.098881" elapsed="0.615440">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:26.714925" 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-15T20:06:26.715974" 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-15T20:06:26.716417" 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-15T20:06:26.716692" 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-15T20:06:26.716986" 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-15T20:06:26.717261" 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-15T20:06:26.717537" 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-15T20:06:26.717936" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:26.717671" elapsed="0.000342"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:26.717642" 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-15T20:06:26.718360" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:26.718121" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:26.718100" 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-15T20:06:26.718796" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:26.718541" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:26.718520" elapsed="0.000385"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:26.715569" elapsed="0.003367"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:26.715097" elapsed="0.003876"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:26.097954" elapsed="0.621160">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:28.725957" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:28.927489" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:29.330830" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:29.333194" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:28.721379" elapsed="0.618682">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:29.340669" 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-15T20:06:29.341186" 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-15T20:06:29.341396" elapsed="0.000089"/>
</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-15T20:06:29.341667" 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-15T20:06:29.341880" 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-15T20:06:29.342074" 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-15T20:06:29.342270" 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-15T20:06:29.342552" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:29.342374" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:29.342353" 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-15T20:06:29.342867" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:29.342686" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:29.342671" 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-15T20:06:29.343169" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:29.342996" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:29.342981" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:29.341010" elapsed="0.002259"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:29.340783" elapsed="0.002513"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:28.720433" elapsed="0.622989">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:31.350243" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:31.552254" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:31.954495" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:31.956993" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:31.345651" elapsed="0.617133">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:31.963471" 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-15T20:06:31.964546" 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-15T20:06:31.964780" 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-15T20:06:31.964994" 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-15T20:06:31.965194" 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-15T20:06:31.965401" 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-15T20:06:31.965604" 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-15T20:06:31.965918" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:31.965722" elapsed="0.000253"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:31.965700" elapsed="0.000299"/>
</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-15T20:06:31.966302" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:31.966054" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:31.966038" elapsed="0.000347"/>
</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-15T20:06:31.966629" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:31.966439" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:31.966424" elapsed="0.000285"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:31.964215" elapsed="0.002531"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:31.963653" elapsed="0.003123"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:31.344694" elapsed="0.622194">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:33.974372" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:34.176216" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:34.578401" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:34.580665" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:33.969691" elapsed="0.616302">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:34.586647" 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-15T20:06:34.587695" elapsed="0.000079"/>
</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-15T20:06:34.588202" 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-15T20:06:34.588659" 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-15T20:06:34.589224" elapsed="0.000058"/>
</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-15T20:06:34.589620" 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-15T20:06:34.589840" 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-15T20:06:34.590140" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:34.589944" elapsed="0.000250"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:34.589922" elapsed="0.000299"/>
</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-15T20:06:34.590455" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:34.590274" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:34.590259" 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-15T20:06:34.590792" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:34.590602" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:34.590584" elapsed="0.000285"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:34.587313" elapsed="0.003579"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:34.586861" elapsed="0.004059"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:33.968807" elapsed="0.622225">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:36.598325" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:36.799989" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:37.203179" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:37.205523" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:36.593474" elapsed="0.617329">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:37.211416" 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-15T20:06:37.212444" 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-15T20:06:37.212926" 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-15T20:06:37.213372" 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-15T20:06:37.213844" 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-15T20:06:37.214332" 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-15T20:06:37.214658" 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-15T20:06:37.214954" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:37.214774" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:37.214752" 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-15T20:06:37.215258" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:37.215088" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:37.215072" 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-15T20:06:37.215558" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:37.215388" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:37.215373" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:37.212059" elapsed="0.003598"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:37.211588" elapsed="0.004095"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:36.592483" elapsed="0.623323">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:39.222887" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:39.424930" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:39.827341" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:39.829720" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:39.218004" elapsed="0.616821">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:39.835429" 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-15T20:06:39.836564" 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-15T20:06:39.837101" 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-15T20:06:39.837545" 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-15T20:06:39.837913" 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-15T20:06:39.838111" 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-15T20:06:39.838311" 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-15T20:06:39.838585" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:39.838409" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:39.838389" elapsed="0.000275"/>
</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-15T20:06:39.838904" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:39.838717" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:39.838702" 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-15T20:06:39.839204" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:39.839034" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:39.839019" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:39.836186" elapsed="0.003117"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:39.835713" elapsed="0.003616"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:39.217104" elapsed="0.622332">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:41.849305" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:42.050885" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:42.452668" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:42.454842" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:41.845674" elapsed="0.614378">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:42.460679" elapsed="0.000099"/>
</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-15T20:06:42.461801" 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-15T20:06:42.462272" 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-15T20:06:42.462704" elapsed="0.000072"/>
</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-15T20:06:42.463172" 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-15T20:06:42.463609" 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-15T20:06:42.464117" 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-15T20:06:42.464799" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:42.464329" elapsed="0.000723"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:42.464287" elapsed="0.000823"/>
</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-15T20:06:42.465619" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:42.465232" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:42.465197" elapsed="0.000630"/>
</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-15T20:06:42.466068" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:42.465892" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:42.465873" elapsed="0.000272"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:42.461370" elapsed="0.004798"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:42.460899" elapsed="0.005299"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:41.844797" elapsed="0.621511">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:44.473990" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:44.675536" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:45.077514" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:45.079628" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:44.468640" elapsed="0.616849">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:45.086134" 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-15T20:06:45.087151" 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-15T20:06:45.087600" 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-15T20:06:45.088108" 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-15T20:06:45.088537" 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-15T20:06:45.088897" 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-15T20:06:45.089096" 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-15T20:06:45.089374" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:45.089197" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:45.089177" 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-15T20:06:45.089679" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:45.089508" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:45.089493" 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-15T20:06:45.089996" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:45.089828" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:45.089813" elapsed="0.000259"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:45.086771" elapsed="0.003324"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:45.086313" elapsed="0.003809"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:44.467660" elapsed="0.622568">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:47.096709" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:47.298321" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:47.700289" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:47.702908" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:47.092430" elapsed="0.615622">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:47.708512" 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-15T20:06:47.709185" 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-15T20:06:47.709464" 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-15T20:06:47.709754" 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-15T20:06:47.710029" 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-15T20:06:47.710299" 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-15T20:06:47.710573" elapsed="0.000027"/>
</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-15T20:06:47.711015" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:47.710709" elapsed="0.000386"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:47.710680" elapsed="0.000454"/>
</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-15T20:06:47.711464" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:47.711209" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:47.711188" elapsed="0.000384"/>
</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-15T20:06:47.711893" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:47.711643" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:47.711622" elapsed="0.000379"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:47.708947" elapsed="0.003085"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:47.708631" elapsed="0.003439"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:47.091517" elapsed="0.620703">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:49.719433" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:49.920850" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:50.322805" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:50.324957" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:49.714486" elapsed="0.615842">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:50.331021" 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-15T20:06:50.331695" 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-15T20:06:50.332002" 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-15T20:06:50.332276" 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-15T20:06:50.332550" 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-15T20:06:50.332886" 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-15T20:06:50.333165" 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-15T20:06:50.333545" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:50.333295" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:50.333269" 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-15T20:06:50.333990" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:50.333728" elapsed="0.000341"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:50.333707" elapsed="0.000394"/>
</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-15T20:06:50.334428" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:50.334188" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:50.334165" elapsed="0.000377"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:50.331456" elapsed="0.003119"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:50.331135" elapsed="0.003476"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:49.713542" elapsed="0.621231">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:52.341465" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:52.543337" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:52.945259" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:52.947283" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:52.337078" elapsed="0.615373">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:52.953045" 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-15T20:06:52.954440" 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-15T20:06:52.954923" 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-15T20:06:52.955366" elapsed="0.000088"/>
</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-15T20:06:52.955888" 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-15T20:06:52.956198" 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-15T20:06:52.956466" 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-15T20:06:52.956772" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:52.956565" elapsed="0.000265"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:52.956545" 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-15T20:06:52.957079" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:52.956909" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:52.956894" 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-15T20:06:52.957376" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:52.957209" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:52.957193" elapsed="0.000260"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:52.954058" elapsed="0.003417"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:52.953213" elapsed="0.004289"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:52.336100" elapsed="0.621503">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:54.964668" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:55.166533" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:55.568575" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:55.570785" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:54.959946" elapsed="0.615906">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:55.576454" 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-15T20:06:55.577457" 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-15T20:06:55.577935" 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-15T20:06:55.578435" 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-15T20:06:55.578906" 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-15T20:06:55.579317" 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-15T20:06:55.579524" 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-15T20:06:55.579816" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:55.579624" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:55.579604" elapsed="0.000293"/>
</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-15T20:06:55.580127" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:55.579950" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:55.579935" 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-15T20:06:55.580432" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:55.580262" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:55.580247" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:55.577082" elapsed="0.003455"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:55.576626" elapsed="0.003995"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:54.958981" elapsed="0.621768">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:57.588071" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:57.789450" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:58.191434" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:58.193345" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:57.583051" elapsed="0.615451">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:06:58.199137" 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-15T20:06:58.199867" 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-15T20:06:58.200148" 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-15T20:06:58.200438" 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-15T20:06:58.200706" 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-15T20:06:58.200998" 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-15T20:06:58.201273" 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-15T20:06:58.201654" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:58.201409" elapsed="0.000343"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:58.201380" 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-15T20:06:58.202116" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:58.201877" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:58.201855" elapsed="0.000370"/>
</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-15T20:06:58.202562" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:06:58.202324" elapsed="0.000313"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:06:58.202301" elapsed="0.000368"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:06:58.199615" elapsed="0.003086"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:06:58.199331" elapsed="0.003426"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:06:57.582110" elapsed="0.620793">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:00.210044" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:00.411874" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:00.814058" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:00.816832" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:00.205190" elapsed="0.617059">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:00.822958" 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-15T20:07:00.824556" 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-15T20:07:00.825064" 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-15T20:07:00.825493" 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-15T20:07:00.825690" 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-15T20:07:00.825903" 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-15T20:07:00.826116" 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-15T20:07:00.826405" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:00.826221" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:00.826198" 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-15T20:07:00.826716" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:00.826544" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:00.826529" elapsed="0.000284"/>
</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-15T20:07:00.827043" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:00.826867" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:00.826851" elapsed="0.000278"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:00.824112" elapsed="0.003040"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:00.823175" elapsed="0.004006"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:00.204251" elapsed="0.623041">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:02.835085" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:03.037023" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:03.438958" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:03.441137" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:02.830027" elapsed="0.616314">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:03.446973" 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-15T20:07:03.447979" 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-15T20:07:03.448433" 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-15T20:07:03.449018" elapsed="0.000060"/>
</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-15T20:07:03.449544" 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-15T20:07:03.449757" 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-15T20:07:03.449959" 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-15T20:07:03.450237" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:03.450058" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:03.450038" 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-15T20:07:03.450546" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:03.450374" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:03.450358" 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-15T20:07:03.450861" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:03.450677" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:03.450662" elapsed="0.000279"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:03.447574" elapsed="0.003391"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:03.447146" elapsed="0.003846"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:02.828936" elapsed="0.622163">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:05.458952" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:05.660782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:06.063060" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:06.065384" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:05.453498" elapsed="0.616937">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:06.072041" 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-15T20:07:06.073063" 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-15T20:07:06.073593" 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-15T20:07:06.074074" 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-15T20:07:06.074496" 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-15T20:07:06.074787" 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-15T20:07:06.075060" 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-15T20:07:06.075431" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:06.075193" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:06.075166" elapsed="0.000375"/>
</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-15T20:07:06.075860" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:06.075613" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:06.075593" 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-15T20:07:06.076364" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:06.076125" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:06.076102" elapsed="0.000371"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:06.072659" elapsed="0.003847"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:06.072220" elapsed="0.004324"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:05.452497" elapsed="0.624196">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:08.084048" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:08.286309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:08.688706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:08.691289" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:08.079091" elapsed="0.617200">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:08.696916" 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-15T20:07:08.698085" 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-15T20:07:08.698375" 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-15T20:07:08.698645" 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-15T20:07:08.698934" 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-15T20:07:08.699212" 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-15T20:07:08.699487" 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-15T20:07:08.699880" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:08.699621" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:08.699594" 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-15T20:07:08.700300" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:08.700065" elapsed="0.000318"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:08.700044" elapsed="0.000370"/>
</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-15T20:07:08.700719" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:08.700485" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:08.700465" elapsed="0.000383"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:08.697847" elapsed="0.003031"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:08.697135" elapsed="0.003779"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:08.078092" elapsed="0.622973">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:10.707382" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:10.908928" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:11.310968" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:11.313204" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:10.703459" elapsed="0.614811">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:11.318964" 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-15T20:07:11.319850" 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-15T20:07:11.320133" 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-15T20:07:11.320401" 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-15T20:07:11.320667" 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-15T20:07:11.320955" 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-15T20:07:11.321228" elapsed="0.000027"/>
</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-15T20:07:11.321600" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:11.321361" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:11.321334" elapsed="0.000385"/>
</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-15T20:07:11.322050" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:11.321812" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:11.321791" elapsed="0.000367"/>
</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-15T20:07:11.322456" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:11.322227" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:11.322207" elapsed="0.000371"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:11.319562" elapsed="0.003054"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:11.319144" elapsed="0.003517"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:10.702501" elapsed="0.620355">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:13.329758" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:13.531434" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:13.933454" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:13.935287" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:13.325612" elapsed="0.614611">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:13.940850" 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-15T20:07:13.941843" 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-15T20:07:13.942351" elapsed="0.000133"/>
</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-15T20:07:13.942869" 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-15T20:07:13.943065" 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-15T20:07:13.943258" 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-15T20:07:13.943456" 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-15T20:07:13.943727" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:13.943552" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:13.943532" 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-15T20:07:13.944043" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:13.943874" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:13.943859" 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-15T20:07:13.944364" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:13.944172" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:13.944157" elapsed="0.000286"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:13.941446" elapsed="0.003020"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:13.941025" elapsed="0.003467"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:13.324219" elapsed="0.620377">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:15.951461" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:16.153261" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:16.555264" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:16.557849" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:15.946796" elapsed="0.616394">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:16.563839" 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-15T20:07:16.564876" 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-15T20:07:16.565356" 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-15T20:07:16.565982" elapsed="0.000062"/>
</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-15T20:07:16.566526" 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-15T20:07:16.566935" 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-15T20:07:16.567149" 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-15T20:07:16.567424" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:16.567247" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:16.567227" 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-15T20:07:16.567800" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:16.567559" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:16.567543" elapsed="0.000339"/>
</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-15T20:07:16.568122" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:16.567935" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:16.567919" elapsed="0.000283"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:16.564464" elapsed="0.003761"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:16.564041" elapsed="0.004211"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:15.945900" elapsed="0.622459">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:18.575604" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:18.777293" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:19.179552" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:19.181904" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:18.570706" elapsed="0.615076">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:19.186243" 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-15T20:07:19.186909" 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-15T20:07:19.187189" 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-15T20:07:19.187475" 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-15T20:07:19.187774" 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-15T20:07:19.188046" 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-15T20:07:19.188323" 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-15T20:07:19.188970" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:19.188459" elapsed="0.000589"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:19.188431" elapsed="0.000652"/>
</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-15T20:07:19.189404" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:19.189159" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:19.189137" 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-15T20:07:19.189834" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:19.189584" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:19.189563" elapsed="0.000379"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:19.186652" elapsed="0.003322"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:19.186363" elapsed="0.003647"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:18.569711" elapsed="0.620443">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:21.196928" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:21.398920" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:21.801557" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:21.803498" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:21.192395" elapsed="0.616073">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:21.809169" 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-15T20:07:21.810203" 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-15T20:07:21.810649" 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-15T20:07:21.811147" 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-15T20:07:21.811593" 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-15T20:07:21.812057" 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-15T20:07:21.812491" 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-15T20:07:21.813174" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:21.812701" elapsed="0.000600"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:21.812657" elapsed="0.000701"/>
</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-15T20:07:21.813899" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:21.813477" elapsed="0.000548"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:21.813443" elapsed="0.000610"/>
</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-15T20:07:21.814270" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:21.814104" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:21.814090" elapsed="0.000256"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:21.809824" elapsed="0.004544"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:21.809351" elapsed="0.005045"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:21.191474" elapsed="0.623036">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:23.821862" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:24.023546" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:24.425840" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:24.427804" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:23.817074" elapsed="0.615779">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:24.433496" 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-15T20:07:24.434615" 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-15T20:07:24.435148" 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-15T20:07:24.435583" 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-15T20:07:24.436070" 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-15T20:07:24.436287" 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-15T20:07:24.436490" 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-15T20:07:24.436785" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:24.436590" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:24.436569" 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-15T20:07:24.437092" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:24.436921" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:24.436905" 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-15T20:07:24.437392" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:24.437222" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:24.437206" elapsed="0.000263"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:24.434240" elapsed="0.003252"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:24.433803" elapsed="0.003716"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:23.816006" elapsed="0.621617">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:26.444618" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:26.646552" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:27.048514" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:27.050616" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:26.439914" elapsed="0.619757">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:27.060108" 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-15T20:07:27.060761" 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-15T20:07:27.061059" 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-15T20:07:27.061331" 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-15T20:07:27.061599" 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-15T20:07:27.061886" 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-15T20:07:27.062163" 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-15T20:07:27.062542" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:27.062301" elapsed="0.000385"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:27.062274" elapsed="0.000450"/>
</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-15T20:07:27.063068" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:27.062822" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:27.062800" 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-15T20:07:27.063480" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:27.063247" elapsed="0.000308"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:27.063227" elapsed="0.000359"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:27.060505" elapsed="0.003112"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:27.060225" elapsed="0.003429"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:26.438955" elapsed="0.624863">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:29.070936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:29.272957" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:29.675921" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:29.678996" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:29.066150" elapsed="0.616813">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:29.683675" elapsed="0.000093"/>
</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-15T20:07:29.684520" 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-15T20:07:29.684818" 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-15T20:07:29.685092" 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-15T20:07:29.685361" 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-15T20:07:29.685635" 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-15T20:07:29.685940" 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-15T20:07:29.686360" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:29.686104" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:29.686068" elapsed="0.000414"/>
</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-15T20:07:29.686813" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:29.686559" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:29.686539" 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-15T20:07:29.687247" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:29.686994" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:29.686974" elapsed="0.000385"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:29.684260" elapsed="0.003130"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:29.683869" elapsed="0.003564"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:29.065151" elapsed="0.622472">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:31.695013" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:31.896483" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:32.298837" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:32.300917" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:31.690156" elapsed="0.616311">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:32.307131" 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-15T20:07:32.308172" 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-15T20:07:32.308621" 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-15T20:07:32.309088" 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-15T20:07:32.309520" 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-15T20:07:32.310163" elapsed="0.000061"/>
</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-15T20:07:32.310436" 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-15T20:07:32.310714" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:32.310538" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:32.310517" elapsed="0.000294"/>
</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-15T20:07:32.311032" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:32.310865" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:32.310850" 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-15T20:07:32.311335" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:32.311167" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:32.311151" elapsed="0.000260"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:32.307792" elapsed="0.003641"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:32.307314" elapsed="0.004147"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:31.689113" elapsed="0.622456">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:34.318836" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:34.520965" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:34.923212" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:34.925244" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:34.314084" elapsed="0.616315">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:34.931242" 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-15T20:07:34.932481" 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-15T20:07:34.933070" elapsed="0.000059"/>
</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-15T20:07:34.933470" 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-15T20:07:34.933667" 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-15T20:07:34.934150" 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-15T20:07:34.934365" 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-15T20:07:34.934645" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:34.934466" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:34.934445" 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-15T20:07:34.934974" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:34.934801" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:34.934786" 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-15T20:07:34.935282" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:34.935112" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:34.935097" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:34.932029" elapsed="0.003352"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:34.931438" elapsed="0.003970"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:34.313014" elapsed="0.622511">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:36.942147" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:37.143704" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:37.546092" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:37.548313" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:36.937897" elapsed="0.615575">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:37.554121" 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-15T20:07:37.555187" 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-15T20:07:37.555637" 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-15T20:07:37.556102" 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-15T20:07:37.556529" 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-15T20:07:37.556985" 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-15T20:07:37.557544" elapsed="0.000054"/>
</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-15T20:07:37.558184" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:37.557792" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:37.557720" elapsed="0.000639"/>
</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-15T20:07:37.558877" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:37.558475" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:37.558442" elapsed="0.000648"/>
</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-15T20:07:37.559519" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:37.559212" elapsed="0.000361"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:37.559179" elapsed="0.000417"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:37.554773" elapsed="0.004846"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:37.554304" elapsed="0.005342"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:36.936921" elapsed="0.622848">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:39.567275" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:39.768977" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:40.171202" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:40.173482" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:39.562207" elapsed="0.616375">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:40.179271" 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-15T20:07:40.180396" 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-15T20:07:40.180910" 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-15T20:07:40.181354" 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-15T20:07:40.181983" elapsed="0.000063"/>
</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-15T20:07:40.182409" 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-15T20:07:40.182607" 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-15T20:07:40.182908" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:40.182710" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:40.182688" 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-15T20:07:40.183211" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:40.183045" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:40.183030" 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-15T20:07:40.183508" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:40.183337" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:40.183323" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:40.180005" elapsed="0.003603"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:40.179495" elapsed="0.004216"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:39.561172" elapsed="0.622676">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:42.190947" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:42.392366" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:42.794048" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:42.796361" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:42.186152" elapsed="0.615398">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:42.802035" 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-15T20:07:42.802706" 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-15T20:07:42.803027" 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-15T20:07:42.803306" 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-15T20:07:42.803578" 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-15T20:07:42.803872" 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-15T20:07:42.804167" 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-15T20:07:42.804903" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:42.804622" elapsed="0.000378"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:42.804278" elapsed="0.000760"/>
</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-15T20:07:42.805361" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:42.805117" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:42.805094" elapsed="0.000377"/>
</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-15T20:07:42.805803" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:42.805545" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:42.805524" elapsed="0.000390"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:42.802466" elapsed="0.003487"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:42.802160" elapsed="0.003843"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:42.185205" elapsed="0.620949">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:44.813087" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:45.014531" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:45.416529" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:45.418378" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:44.808615" elapsed="0.614924">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:45.424130" 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-15T20:07:45.425129" 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-15T20:07:45.425584" 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-15T20:07:45.426073" 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-15T20:07:45.426511" 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-15T20:07:45.426972" 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-15T20:07:45.427457" 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-15T20:07:45.427965" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:45.427669" elapsed="0.000351"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:45.427625" elapsed="0.000422"/>
</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-15T20:07:45.428268" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:45.428100" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:45.428085" 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-15T20:07:45.428564" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:45.428396" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:45.428381" elapsed="0.000260"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:45.424724" elapsed="0.003940"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:45.424300" elapsed="0.004390"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:44.807612" elapsed="0.621194">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:47.435664" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:47.638025" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:48.040119" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:48.042079" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:47.431031" elapsed="0.616184">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:48.047783" elapsed="0.000058"/>
</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-15T20:07:48.048762" 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-15T20:07:48.049209" 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-15T20:07:48.049636" 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-15T20:07:48.050260" 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-15T20:07:48.050681" 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-15T20:07:48.050907" 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-15T20:07:48.051177" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:48.051002" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:48.050983" elapsed="0.000275"/>
</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-15T20:07:48.051482" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:48.051311" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:48.051296" 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-15T20:07:48.051802" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:48.051609" elapsed="0.000249"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:48.051595" elapsed="0.000285"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:48.048366" elapsed="0.003537"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:48.047953" elapsed="0.003976"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:47.430055" elapsed="0.621974">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:50.059185" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:50.260864" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:50.663001" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:50.665206" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:50.054536" elapsed="0.615703">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:50.670895" 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-15T20:07:50.671982" 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-15T20:07:50.672430" 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-15T20:07:50.672951" 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-15T20:07:50.673398" 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-15T20:07:50.673879" 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-15T20:07:50.674082" 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-15T20:07:50.674359" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:50.674183" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:50.674161" 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-15T20:07:50.674667" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:50.674492" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:50.674477" 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-15T20:07:50.675304" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:50.674893" elapsed="0.000468"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:50.674876" elapsed="0.000508"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:50.671558" elapsed="0.003849"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:50.671075" elapsed="0.004359"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:50.053525" elapsed="0.622017">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:52.682800" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:52.884599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:53.286794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:53.289082" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:52.677831" elapsed="0.615501">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:53.293804" 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-15T20:07:53.294485" 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-15T20:07:53.294801" 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-15T20:07:53.295080" 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-15T20:07:53.295370" 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-15T20:07:53.295696" 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-15T20:07:53.296000" 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-15T20:07:53.296388" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:53.296139" elapsed="0.000325"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:53.296110" 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-15T20:07:53.296840" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:53.296586" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:53.296564" elapsed="0.000400"/>
</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-15T20:07:53.297280" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:53.297036" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:53.297015" elapsed="0.000373"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:53.294231" elapsed="0.003188"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:53.293931" elapsed="0.003526"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:52.676924" elapsed="0.620683">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:55.304314" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:55.506099" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:55.908501" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:55.910804" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:55.299945" elapsed="0.616011">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:55.916553" 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-15T20:07:55.917569" 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-15T20:07:55.918059" 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-15T20:07:55.918557" 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-15T20:07:55.918992" 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-15T20:07:55.919195" 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-15T20:07:55.919409" 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-15T20:07:55.919690" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:55.919513" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:55.919492" elapsed="0.000293"/>
</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-15T20:07:55.920009" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:55.919839" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:55.919823" 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-15T20:07:55.920306" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:55.920137" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:55.920122" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:55.917192" elapsed="0.003213"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:55.916727" elapsed="0.003705"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:55.298994" elapsed="0.621543">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:57.927304" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:58.128806" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:58.530888" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:58.532684" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:07:57.922725" elapsed="0.615228">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:07:58.538357" 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-15T20:07:58.539034" 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-15T20:07:58.539331" elapsed="0.000106"/>
</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-15T20:07:58.539709" 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-15T20:07:58.540025" 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-15T20:07:58.540314" 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-15T20:07:58.540603" 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-15T20:07:58.541046" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:58.540762" elapsed="0.000362"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:58.540714" 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-15T20:07:58.541476" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:58.541234" elapsed="0.000325"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:58.541212" elapsed="0.000379"/>
</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-15T20:07:58.542199" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:07:58.541663" elapsed="0.000619"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:07:58.541642" elapsed="0.000675"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:07:58.538784" elapsed="0.003568"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:07:58.538476" elapsed="0.003914"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:07:57.921843" elapsed="0.620693">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:00.550046" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:00.751979" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:01.154356" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:01.157185" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:00.544980" elapsed="0.615731">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:01.161183" 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-15T20:08:01.161858" 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-15T20:08:01.162139" 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-15T20:08:01.162409" 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-15T20:08:01.162676" 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-15T20:08:01.162964" 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-15T20:08:01.163243" 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-15T20:08:01.163621" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:01.163377" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:01.163351" elapsed="0.000423"/>
</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-15T20:08:01.164174" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:01.163850" elapsed="0.000410"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:01.163828" elapsed="0.000465"/>
</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-15T20:08:01.164601" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:01.164364" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:01.164344" elapsed="0.000364"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:01.161601" elapsed="0.003158"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:01.161308" elapsed="0.003490"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:00.543954" elapsed="0.620996">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:03.171706" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:03.374205" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:03.776493" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:03.778973" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:03.167225" elapsed="0.617826">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:03.785516" 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-15T20:08:03.786259" 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-15T20:08:03.786643" 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-15T20:08:03.786957" 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-15T20:08:03.787244" 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-15T20:08:03.787443" 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-15T20:08:03.787719" 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-15T20:08:03.788065" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:03.787849" elapsed="0.000279"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:03.787827" elapsed="0.000330"/>
</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-15T20:08:03.788415" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:03.788214" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:03.788198" elapsed="0.000303"/>
</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-15T20:08:03.788748" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:03.788555" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:03.788539" elapsed="0.000309"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:03.786008" elapsed="0.002872"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:03.785662" elapsed="0.003251"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:03.166266" elapsed="0.622762">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:05.795936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:05.997555" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:06.399835" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:06.401923" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:05.791322" elapsed="0.615772">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:06.407696" elapsed="0.000089"/>
</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-15T20:08:06.408715" elapsed="0.000078"/>
</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-15T20:08:06.409344" elapsed="0.000061"/>
</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-15T20:08:06.409870" 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-15T20:08:06.410199" 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-15T20:08:06.410594" 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-15T20:08:06.410815" 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-15T20:08:06.411089" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:06.410913" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:06.410893" elapsed="0.000275"/>
</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-15T20:08:06.411387" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:06.411221" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:06.411206" 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-15T20:08:06.411679" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:06.411514" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:06.411499" elapsed="0.000276"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:06.408342" elapsed="0.003455"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:06.407904" elapsed="0.003919"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:05.790370" elapsed="0.621558">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:08.418814" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:08.620346" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:09.022350" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:09.024538" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:08.414230" elapsed="0.615023">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:09.029670" 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-15T20:08:09.030396" 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-15T20:08:09.030679" 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-15T20:08:09.030975" 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-15T20:08:09.031248" 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-15T20:08:09.031520" 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-15T20:08:09.031820" 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-15T20:08:09.032222" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:09.031974" elapsed="0.000325"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:09.031947" 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-15T20:08:09.032640" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:09.032406" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:09.032385" 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-15T20:08:09.033071" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:09.032838" elapsed="0.000308"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:09.032818" elapsed="0.000360"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:09.030161" elapsed="0.003048"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:09.029881" elapsed="0.003363"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:08.413268" elapsed="0.620116">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:11.037644" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:11.238990" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:11.641278" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:11.643687" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:11.034681" elapsed="0.614117">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:11.649437" 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-15T20:08:11.650447" 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-15T20:08:11.650980" 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-15T20:08:11.651362" 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-15T20:08:11.651634" 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-15T20:08:11.651926" 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-15T20:08:11.652205" 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-15T20:08:11.652592" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:11.652350" elapsed="0.000412"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:11.652323" elapsed="0.000478"/>
</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-15T20:08:11.653120" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:11.652880" elapsed="0.000318"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:11.652857" 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-15T20:08:11.653551" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:11.653304" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:11.653283" elapsed="0.000376"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:11.650076" elapsed="0.003614"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:11.649614" elapsed="0.004114"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:11.034209" elapsed="0.619683">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:13.660604" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:13.862314" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:14.265018" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:14.267383" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:13.656452" elapsed="0.620767">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:14.277876" 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-15T20:08:14.278582" elapsed="0.000022"/>
</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-15T20:08:14.278796" 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-15T20:08:14.278991" 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-15T20:08:14.279185" 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-15T20:08:14.279379" 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-15T20:08:14.279574" 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-15T20:08:14.279860" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:14.279671" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:14.279652" elapsed="0.000286"/>
</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-15T20:08:14.280160" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:14.279991" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:14.279976" 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-15T20:08:14.280457" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:14.280288" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:14.280273" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:14.278412" elapsed="0.002144"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:14.278051" elapsed="0.002531"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:13.655369" elapsed="0.625316">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:16.288050" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:16.489785" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:16.891608" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:16.894014" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:16.283245" elapsed="0.615921">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:16.899840" 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-15T20:08:16.900625" 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-15T20:08:16.900856" 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-15T20:08:16.901058" 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-15T20:08:16.901254" 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-15T20:08:16.901452" 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-15T20:08:16.901651" 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-15T20:08:16.901942" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:16.901763" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:16.901728" elapsed="0.000294"/>
</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-15T20:08:16.902246" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:16.902076" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:16.902061" 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-15T20:08:16.902548" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:16.902377" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:16.902362" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:16.900453" elapsed="0.002196"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:16.900023" elapsed="0.002653"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:16.282198" elapsed="0.620596">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:18.910073" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:19.111910" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:19.514635" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:19.516955" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:18.905134" elapsed="0.616921">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:19.522880" 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-15T20:08:19.523688" 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-15T20:08:19.523912" 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-15T20:08:19.524111" 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-15T20:08:19.524324" 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-15T20:08:19.524521" 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-15T20:08:19.524721" 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-15T20:08:19.525017" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:19.524838" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:19.524817" 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-15T20:08:19.525341" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:19.525155" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:19.525138" 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-15T20:08:19.525649" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:19.525478" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:19.525463" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:19.523510" elapsed="0.002260"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:19.523075" elapsed="0.002724"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:18.904167" elapsed="0.621742">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:21.532692" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:21.734423" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:22.136834" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:22.139361" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:21.528279" elapsed="0.615812">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:22.144551" 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-15T20:08:22.145279" 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-15T20:08:22.145594" 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-15T20:08:22.145896" 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-15T20:08:22.146177" 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-15T20:08:22.146808" 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-15T20:08:22.147224" 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-15T20:08:22.147642" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:22.147379" elapsed="0.000342"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:22.147348" 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-15T20:08:22.148106" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:22.147862" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:22.147839" 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-15T20:08:22.148580" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:22.148334" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:22.148311" elapsed="0.000380"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:22.145019" elapsed="0.003705"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:22.144681" elapsed="0.004107"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:21.527295" elapsed="0.621647">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:24.156385" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:24.358579" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:24.761100" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:24.763402" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:24.151613" elapsed="0.616958">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:24.769069" 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-15T20:08:24.769792" 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-15T20:08:24.770098" 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-15T20:08:24.770395" 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-15T20:08:24.770691" 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-15T20:08:24.771004" 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-15T20:08:24.771298" 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-15T20:08:24.771699" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:24.771440" elapsed="0.000545"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:24.771411" elapsed="0.000612"/>
</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-15T20:08:24.772376" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:24.772102" elapsed="0.000355"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:24.772079" elapsed="0.000412"/>
</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-15T20:08:24.772841" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:24.772568" elapsed="0.000356"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:24.772545" elapsed="0.000413"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:24.769512" elapsed="0.003480"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:24.769199" elapsed="0.003922"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:24.150649" elapsed="0.622640">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:26.781002" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:26.982772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:27.384960" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:27.387210" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:26.775631" elapsed="0.616756">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:27.393052" 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-15T20:08:27.394085" 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-15T20:08:27.394536" 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-15T20:08:27.395003" elapsed="0.000095"/>
</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-15T20:08:27.395495" 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-15T20:08:27.395882" 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-15T20:08:27.396159" 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-15T20:08:27.396539" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:27.396294" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:27.396266" 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-15T20:08:27.396989" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:27.396746" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:27.396708" 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-15T20:08:27.397406" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:27.397168" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:27.397148" elapsed="0.000364"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:27.393679" elapsed="0.003874"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:27.393236" elapsed="0.004366"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:26.774632" elapsed="0.623151">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:29.404656" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:29.606276" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:30.008675" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:30.011144" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:29.400159" elapsed="0.616692">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:30.017473" 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-15T20:08:30.018625" 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-15T20:08:30.019018" 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-15T20:08:30.019213" 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-15T20:08:30.019405" 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-15T20:08:30.019598" 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-15T20:08:30.019816" 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-15T20:08:30.020341" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:30.020155" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:30.019896" elapsed="0.000528"/>
</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-15T20:08:30.020650" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:30.020479" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:30.020464" 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-15T20:08:30.020965" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:30.020795" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:30.020779" elapsed="0.000263"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:30.018229" elapsed="0.002836"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:30.017651" elapsed="0.003440"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:29.399200" elapsed="0.622000">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:32.029019" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:32.230722" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:32.632915" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:32.635559" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:32.023528" elapsed="0.617497">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:32.641473" 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-15T20:08:32.642173" 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-15T20:08:32.642459" 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-15T20:08:32.642757" 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-15T20:08:32.643159" 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-15T20:08:32.643444" 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-15T20:08:32.643728" 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-15T20:08:32.644166" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:32.643914" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:32.643884" 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-15T20:08:32.644652" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:32.644361" elapsed="0.000393"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:32.644338" 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-15T20:08:32.645128" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:32.644879" elapsed="0.000330"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:32.644851" elapsed="0.000391"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:32.641932" elapsed="0.003344"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:32.641595" elapsed="0.003718"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:32.022549" elapsed="0.622912">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:34.652574" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:34.855088" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:35.257647" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:35.260071" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:34.647873" elapsed="0.617380">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:35.265910" 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-15T20:08:35.266984" 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-15T20:08:35.267524" elapsed="0.000054"/>
</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-15T20:08:35.268040" 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-15T20:08:35.268293" 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-15T20:08:35.268498" 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-15T20:08:35.268702" 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-15T20:08:35.269004" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:35.268822" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:35.268800" elapsed="0.000287"/>
</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-15T20:08:35.269324" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:35.269142" elapsed="0.000243"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:35.269127" 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-15T20:08:35.269714" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:35.269535" elapsed="0.000255"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:35.269517" elapsed="0.000297"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:35.266562" elapsed="0.003277"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:35.266094" elapsed="0.003772"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:34.646864" elapsed="0.623111">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:37.276878" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:37.478839" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:37.881240" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:37.883617" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:37.272314" elapsed="0.616537">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:37.889268" elapsed="0.000031"/>
</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-15T20:08:37.889759" 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-15T20:08:37.889972" 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-15T20:08:37.890182" 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-15T20:08:37.890378" 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-15T20:08:37.890575" 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-15T20:08:37.890793" 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-15T20:08:37.891070" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:37.890894" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:37.890874" 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-15T20:08:37.891374" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:37.891204" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:37.891189" 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-15T20:08:37.891929" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:37.891508" elapsed="0.000479"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:37.891493" elapsed="0.000518"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:37.889571" elapsed="0.002463"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:37.889356" elapsed="0.002705"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:37.271305" elapsed="0.620859">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:39.896713" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:40.098624" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:40.500684" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:40.502498" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:39.893798" elapsed="0.613976">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:40.508374" 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-15T20:08:40.509444" 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-15T20:08:40.509924" 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-15T20:08:40.510332" 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-15T20:08:40.510524" 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-15T20:08:40.510715" 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-15T20:08:40.510929" 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-15T20:08:40.511207" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:40.511030" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:40.511008" 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-15T20:08:40.511514" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:40.511340" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:40.511325" 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-15T20:08:40.511824" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:40.511642" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:40.511627" elapsed="0.000275"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:40.509018" elapsed="0.002906"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:40.508554" elapsed="0.003397"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:39.893301" elapsed="0.618758">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:42.518975" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:42.720937" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:43.122992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:43.125213" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:42.514623" elapsed="0.615654">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:43.130762" 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-15T20:08:43.131408" 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-15T20:08:43.131687" elapsed="0.000129"/>
</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-15T20:08:43.132076" 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-15T20:08:43.132353" 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-15T20:08:43.132625" 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-15T20:08:43.132920" 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-15T20:08:43.133329" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:43.133077" elapsed="0.000329"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:43.133048" elapsed="0.000392"/>
</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-15T20:08:43.133769" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:43.133515" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:43.133493" 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-15T20:08:43.134185" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:43.133951" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:43.133930" elapsed="0.000362"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:43.131172" elapsed="0.003151"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:43.130884" elapsed="0.003476"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:42.513642" elapsed="0.620862">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:45.141487" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:45.343160" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:45.745790" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:45.748295" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:45.136834" elapsed="0.616602">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:45.754140" 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-15T20:08:45.755306" elapsed="0.000077"/>
</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-15T20:08:45.755938" 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-15T20:08:45.756356" 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-15T20:08:45.756565" 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-15T20:08:45.756781" 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-15T20:08:45.756985" 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-15T20:08:45.757288" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:45.757085" elapsed="0.000266"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:45.757064" 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-15T20:08:45.757708" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:45.757433" elapsed="0.000355"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:45.757416" elapsed="0.000397"/>
</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-15T20:08:45.758269" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:45.757868" elapsed="0.000458"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:45.757852" elapsed="0.000498"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:45.754890" elapsed="0.003483"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:45.754334" elapsed="0.004066"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:45.135900" elapsed="0.622603">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:47.765525" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:47.966991" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:48.369314" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:48.371676" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:47.761389" elapsed="0.615117">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:48.376982" 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-15T20:08:48.377628" 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-15T20:08:48.377924" 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-15T20:08:48.378194" 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-15T20:08:48.378502" 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-15T20:08:48.378792" 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-15T20:08:48.379067" 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-15T20:08:48.379453" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:48.379200" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:48.379173" 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-15T20:08:48.379887" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:48.379634" elapsed="0.000329"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:48.379613" elapsed="0.000381"/>
</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-15T20:08:48.380311" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:48.380065" elapsed="0.000329"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:48.380044" elapsed="0.000383"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:48.377392" elapsed="0.003067"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:48.377103" elapsed="0.003392"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:47.760100" elapsed="0.620538">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:50.387128" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:50.589029" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:50.991290" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:50.993910" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:50.383170" elapsed="0.617393">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:51.001235" 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-15T20:08:51.002213" 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-15T20:08:51.002637" 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-15T20:08:51.003080" 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-15T20:08:51.003487" 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-15T20:08:51.003930" 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-15T20:08:51.004359" 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-15T20:08:51.004904" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:51.004562" elapsed="0.000433"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:51.004523" elapsed="0.000509"/>
</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-15T20:08:51.005471" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:51.005116" elapsed="0.000475"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:51.005089" elapsed="0.000554"/>
</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-15T20:08:51.006140" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:51.005782" elapsed="0.000474"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:51.005721" elapsed="0.000585"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:51.001859" elapsed="0.004494"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:51.001412" elapsed="0.004994"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:50.382171" elapsed="0.624438">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:53.013773" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:53.215226" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:53.617555" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:53.620083" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:53.009180" elapsed="0.616087">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:53.626016" 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-15T20:08:53.626791" 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-15T20:08:53.626992" 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-15T20:08:53.627186" 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-15T20:08:53.627377" 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-15T20:08:53.627799" 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-15T20:08:53.628008" 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-15T20:08:53.628290" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:53.628106" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:53.628086" elapsed="0.000286"/>
</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-15T20:08:53.628602" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:53.628425" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:53.628409" elapsed="0.000270"/>
</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-15T20:08:53.628917" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:53.628744" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:53.628716" elapsed="0.000279"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:53.626600" elapsed="0.002418"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:53.626301" elapsed="0.002744"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:53.008138" elapsed="0.621012">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:55.636054" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:55.837462" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:56.239855" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:56.242154" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:55.631549" elapsed="0.615764">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:56.247983" 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-15T20:08:56.249033" 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-15T20:08:56.249508" 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-15T20:08:56.249985" 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-15T20:08:56.250529" elapsed="0.000061"/>
</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-15T20:08:56.250893" 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-15T20:08:56.251102" 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-15T20:08:56.251382" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:56.251207" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:56.251185" elapsed="0.000349"/>
</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-15T20:08:56.251779" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:56.251589" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:56.251574" 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-15T20:08:56.252086" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:56.251911" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:56.251895" elapsed="0.000269"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:56.248619" elapsed="0.003568"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:56.248165" elapsed="0.004048"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:55.630565" elapsed="0.621758">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:58.259837" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:58.461610" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:58.863992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:58.866413" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:08:58.254608" elapsed="0.616999">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:08:58.872057" 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-15T20:08:58.872695" 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-15T20:08:58.872999" 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-15T20:08:58.873272" 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-15T20:08:58.873543" 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-15T20:08:58.873834" 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-15T20:08:58.874108" 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-15T20:08:58.874484" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:58.874241" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:58.874214" 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-15T20:08:58.874939" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:58.874674" elapsed="0.000343"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:58.874653" 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-15T20:08:58.875363" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:08:58.875120" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:08:58.875099" elapsed="0.000373"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:08:58.872455" elapsed="0.003048"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:08:58.872175" elapsed="0.003364"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:08:58.253639" elapsed="0.622044">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:00.882595" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:01.084349" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:01.486559" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:01.488891" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:00.878026" elapsed="0.619604">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:01.498054" 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-15T20:09:01.498674" 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-15T20:09:01.498974" 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-15T20:09:01.499263" 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-15T20:09:01.499535" 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-15T20:09:01.499826" 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-15T20:09:01.500099" 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-15T20:09:01.500475" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:01.500230" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:01.500204" elapsed="0.000383"/>
</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-15T20:09:01.500916" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:01.500660" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:01.500639" 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-15T20:09:01.501333" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:01.501098" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:01.501077" elapsed="0.000363"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:01.498441" elapsed="0.003031"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:01.498171" elapsed="0.003337"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:00.877092" elapsed="0.624557">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:03.509019" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:03.710680" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:04.112709" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:04.114963" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:03.504056" elapsed="0.615910">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:04.120477" 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-15T20:09:04.121144" 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-15T20:09:04.121424" 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-15T20:09:04.121697" 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-15T20:09:04.121993" 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-15T20:09:04.122265" 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-15T20:09:04.122539" 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-15T20:09:04.122934" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:04.122671" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:04.122644" elapsed="0.000414"/>
</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-15T20:09:04.123373" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:04.123133" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:04.123111" 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-15T20:09:04.123805" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:04.123551" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:04.123530" elapsed="0.000384"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:04.120906" elapsed="0.003039"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:04.120598" elapsed="0.003384"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:03.503015" elapsed="0.621106">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:06.131547" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:06.333229" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:06.735295" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:06.737289" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:06.126387" elapsed="0.616005">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:06.743028" 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-15T20:09:06.744029" 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-15T20:09:06.744482" 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-15T20:09:06.744987" 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-15T20:09:06.745424" 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-15T20:09:06.745885" 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-15T20:09:06.746417" elapsed="0.000133"/>
</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-15T20:09:06.747220" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:06.746758" elapsed="0.000588"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:06.746690" elapsed="0.000711"/>
</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-15T20:09:06.747948" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:06.747519" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:06.747485" elapsed="0.000583"/>
</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-15T20:09:06.748290" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:06.748119" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:06.748104" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:06.743621" elapsed="0.004770"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:06.743206" elapsed="0.005211"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:06.125447" elapsed="0.623074">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:08.755885" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:08.957444" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:09.359317" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:09.361385" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:08.750850" elapsed="0.615755">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:09.367278" 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-15T20:09:09.368348" 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-15T20:09:09.368852" 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-15T20:09:09.369301" 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-15T20:09:09.369775" 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-15T20:09:09.370805" elapsed="0.000064"/>
</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-15T20:09:09.371189" 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-15T20:09:09.371472" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:09.371294" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:09.371271" 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-15T20:09:09.371790" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:09.371606" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:09.371591" elapsed="0.000277"/>
</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-15T20:09:09.372087" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:09.371919" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:09.371905" elapsed="0.000275"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:09.367966" elapsed="0.004236"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:09.367467" elapsed="0.004825"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:08.749865" elapsed="0.622543">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:11.379227" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:11.580916" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:11.982900" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:11.985566" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:11.374707" elapsed="0.615075">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:11.990257" 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-15T20:09:11.990950" 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-15T20:09:11.991246" 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-15T20:09:11.991532" 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-15T20:09:11.991837" 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-15T20:09:11.992121" 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-15T20:09:11.992409" 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-15T20:09:11.992824" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:11.992550" elapsed="0.000355"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:11.992522" elapsed="0.000421"/>
</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-15T20:09:11.993272" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:11.993025" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:11.993003" 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-15T20:09:11.993708" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:11.993459" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:11.993438" elapsed="0.000404"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:11.990677" elapsed="0.003199"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:11.990380" elapsed="0.003536"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:11.373728" elapsed="0.620375">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:14.002028" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:14.203998" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:14.606284" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:14.608612" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:13.996517" elapsed="0.617765">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:14.614958" 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-15T20:09:14.615998" 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-15T20:09:14.616475" 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-15T20:09:14.616940" 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-15T20:09:14.617377" 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-15T20:09:14.617896" 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-15T20:09:14.618278" 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-15T20:09:14.618554" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:14.618377" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:14.618357" 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-15T20:09:14.618874" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:14.618689" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:14.618674" 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-15T20:09:14.619175" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:14.619004" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:14.618989" elapsed="0.000263"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:14.615581" elapsed="0.003693"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:14.615150" elapsed="0.004151"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:13.995532" elapsed="0.623883">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:16.625048" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:16.826517" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:17.229034" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:17.231388" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:16.621374" elapsed="0.615020">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:17.237040" 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-15T20:09:17.238036" 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-15T20:09:17.238481" 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-15T20:09:17.238935" 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-15T20:09:17.239487" 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-15T20:09:17.239950" 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-15T20:09:17.240390" 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-15T20:09:17.241301" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:17.241068" elapsed="0.000293"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:17.240551" elapsed="0.000835"/>
</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-15T20:09:17.241615" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:17.241441" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:17.241425" 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-15T20:09:17.241932" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:17.241761" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:17.241744" elapsed="0.000267"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:17.237639" elapsed="0.004395"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:17.237211" elapsed="0.004850"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:16.620667" elapsed="0.621497">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:19.249042" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:19.450618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:19.852912" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:19.855351" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:19.244480" elapsed="0.615942">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:19.860894" 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-15T20:09:19.861571" 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-15T20:09:19.861871" 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-15T20:09:19.862146" 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-15T20:09:19.862414" 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-15T20:09:19.862682" 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-15T20:09:19.862978" 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-15T20:09:19.863364" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:19.863115" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:19.863085" elapsed="0.000393"/>
</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-15T20:09:19.863824" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:19.863553" elapsed="0.000350"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:19.863532" 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-15T20:09:19.864343" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:19.864104" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:19.864081" elapsed="0.000369"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:19.861331" elapsed="0.003151"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:19.861022" elapsed="0.003499"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:19.243499" elapsed="0.621172">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:21.872038" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:22.074473" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:22.476947" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:22.479183" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:21.867075" elapsed="0.617118">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:22.484872" 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-15T20:09:22.485912" 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-15T20:09:22.486362" 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-15T20:09:22.486822" 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-15T20:09:22.487303" 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-15T20:09:22.487580" 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-15T20:09:22.487874" 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-15T20:09:22.488259" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:22.488014" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:22.487985" 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-15T20:09:22.488683" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:22.488448" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:22.488427" 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-15T20:09:22.489118" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:22.488884" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:22.488863" elapsed="0.000363"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:22.485504" elapsed="0.003754"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:22.485059" elapsed="0.004237"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:21.866078" elapsed="0.623368">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:24.496417" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:24.698195" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:25.100323" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:25.102400" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:24.491724" elapsed="0.615747">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:25.108087" 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-15T20:09:25.109101" 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-15T20:09:25.109550" 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-15T20:09:25.110018" 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-15T20:09:25.110514" 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-15T20:09:25.110726" 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-15T20:09:25.110944" 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-15T20:09:25.111220" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:25.111043" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:25.111022" 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-15T20:09:25.111526" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:25.111355" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:25.111339" 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-15T20:09:25.112056" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:25.111659" elapsed="0.000455"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:25.111644" elapsed="0.000494"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:25.108701" elapsed="0.003461"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:25.108262" elapsed="0.003926"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:24.490822" elapsed="0.621469">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:27.119243" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:27.320686" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:27.722840" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:27.724619" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:27.114582" elapsed="0.613405">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:27.728430" 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-15T20:09:27.729101" 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-15T20:09:27.729401" elapsed="0.000108"/>
</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-15T20:09:27.729783" 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-15T20:09:27.730061" 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-15T20:09:27.730333" 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-15T20:09:27.730607" 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-15T20:09:27.731013" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:27.730765" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:27.730715" 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-15T20:09:27.731439" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:27.731201" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:27.731179" 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-15T20:09:27.731884" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:27.731623" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:27.731602" elapsed="0.000393"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:27.728861" elapsed="0.003167"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:27.728554" elapsed="0.003510"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:27.113630" elapsed="0.618577">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:29.739047" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:29.941320" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:30.343340" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:30.345707" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:29.734500" elapsed="0.616397">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:30.351495" 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-15T20:09:30.352585" 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-15T20:09:30.352892" 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-15T20:09:30.353170" 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-15T20:09:30.353442" 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-15T20:09:30.353748" 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-15T20:09:30.354032" 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-15T20:09:30.354412" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:30.354167" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:30.354140" elapsed="0.000385"/>
</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-15T20:09:30.354941" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:30.354598" elapsed="0.000424"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:30.354577" elapsed="0.000478"/>
</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-15T20:09:30.355369" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:30.355129" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:30.355107" elapsed="0.000371"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:30.352226" elapsed="0.003284"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:30.351671" elapsed="0.003876"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:29.733566" elapsed="0.622124">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:32.362292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:32.563797" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:32.965960" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:32.968181" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:32.358127" elapsed="0.615345">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:32.974165" 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-15T20:09:32.975258" 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-15T20:09:32.975762" 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-15T20:09:32.975963" 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-15T20:09:32.976156" 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-15T20:09:32.976348" 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-15T20:09:32.976543" 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-15T20:09:32.976833" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:32.976642" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:32.976622" 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-15T20:09:32.977135" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:32.976967" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:32.976952" 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-15T20:09:32.977755" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:32.977314" elapsed="0.000500"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:32.977294" elapsed="0.000544"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:32.974825" elapsed="0.003036"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:32.974349" elapsed="0.003539"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:32.357116" elapsed="0.620880">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:34.985839" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:35.187958" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:35.590266" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:35.592858" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:34.980486" elapsed="0.618595">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:35.599554" 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-15T20:09:35.600251" 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-15T20:09:35.600549" 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-15T20:09:35.600850" 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-15T20:09:35.601135" 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-15T20:09:35.601434" 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-15T20:09:35.601728" 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-15T20:09:35.602178" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:35.601891" elapsed="0.000374"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:35.601861" 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-15T20:09:35.602636" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:35.602391" elapsed="0.000365"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:35.602368" 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-15T20:09:35.603028" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:35.602854" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:35.602835" elapsed="0.000272"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:35.600007" elapsed="0.003123"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:35.599680" elapsed="0.003478"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:34.979489" elapsed="0.623781">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:37.610546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:37.812947" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:38.215182" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:38.217529" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:37.605714" elapsed="0.617094">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:38.223425" 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-15T20:09:38.225228" elapsed="0.000067"/>
</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-15T20:09:38.225790" 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-15T20:09:38.226266" 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-15T20:09:38.226757" 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-15T20:09:38.227229" 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-15T20:09:38.227832" elapsed="0.000071"/>
</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-15T20:09:38.228527" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:38.228100" elapsed="0.000560"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:38.228052" elapsed="0.000670"/>
</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-15T20:09:38.229433" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:38.228944" elapsed="0.000661"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:38.228904" elapsed="0.000765"/>
</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-15T20:09:38.230031" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:38.229792" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:38.229769" elapsed="0.000372"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:38.224585" elapsed="0.005586"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:38.223972" elapsed="0.006237"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:37.604674" elapsed="0.625719">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:40.238179" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:40.440096" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:40.842456" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:40.844783" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:40.232966" elapsed="0.616640">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:40.850090" 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-15T20:09:40.850775" 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-15T20:09:40.851084" 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-15T20:09:40.851364" 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-15T20:09:40.851635" 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-15T20:09:40.852274" 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-15T20:09:40.852566" 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-15T20:09:40.852983" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:40.852708" elapsed="0.000437"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:40.852680" elapsed="0.000506"/>
</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-15T20:09:40.853525" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:40.853267" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:40.853245" elapsed="0.000396"/>
</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-15T20:09:40.853982" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:40.853717" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:40.853696" elapsed="0.000412"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:40.850510" elapsed="0.003633"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:40.850217" elapsed="0.003966"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:40.231823" elapsed="0.622511">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:42.861865" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:43.063461" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:43.465482" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:43.467650" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:42.856921" elapsed="0.616089">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:43.473659" 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-15T20:09:43.474718" elapsed="0.000081"/>
</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-15T20:09:43.475203" 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-15T20:09:43.475651" 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-15T20:09:43.476144" 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-15T20:09:43.476669" elapsed="0.000058"/>
</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-15T20:09:43.477114" 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-15T20:09:43.477408" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:43.477217" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:43.477197" 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-15T20:09:43.477726" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:43.477551" elapsed="0.000243"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:43.477536" 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-15T20:09:43.478041" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:43.477873" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:43.477858" elapsed="0.000271"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:43.474341" elapsed="0.003810"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:43.473869" elapsed="0.004308"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:42.855852" elapsed="0.622432">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:45.486276" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:45.687887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:46.090090" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:46.092526" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:45.480700" elapsed="0.616265">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:46.097424" 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-15T20:09:46.098220" 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-15T20:09:46.098631" 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-15T20:09:46.099094" 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-15T20:09:46.099511" 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-15T20:09:46.099850" 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-15T20:09:46.100149" 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-15T20:09:46.100566" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:46.100306" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:46.100264" elapsed="0.000421"/>
</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-15T20:09:46.101045" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:46.100787" elapsed="0.000343"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:46.100762" elapsed="0.000401"/>
</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-15T20:09:46.101473" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:46.101236" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:46.101215" elapsed="0.000367"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:46.097913" elapsed="0.003700"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:46.097550" elapsed="0.004100"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:45.479709" elapsed="0.622187">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:48.108494" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:48.310279" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:48.712478" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:48.714509" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:48.104171" elapsed="0.620185">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:48.724752" 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-15T20:09:48.725223" elapsed="0.000022"/>
</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-15T20:09:48.725422" 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-15T20:09:48.725615" 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-15T20:09:48.725822" 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-15T20:09:48.726018" 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-15T20:09:48.726213" 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-15T20:09:48.726487" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:48.726312" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:48.726291" elapsed="0.000275"/>
</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-15T20:09:48.726797" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:48.726617" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:48.726603" 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-15T20:09:48.727125" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:48.726924" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:48.726909" elapsed="0.000293"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:48.725053" elapsed="0.002171"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:48.724844" elapsed="0.002406"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:48.103273" elapsed="0.624082">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:50.734274" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:50.936120" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:51.338262" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:51.340585" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:50.729690" elapsed="0.616152">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:51.346477" 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-15T20:09:51.347498" 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-15T20:09:51.347974" 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-15T20:09:51.348594" 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-15T20:09:51.349084" elapsed="0.000054"/>
</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-15T20:09:51.349388" 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-15T20:09:51.349646" 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-15T20:09:51.349937" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:51.349759" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:51.349725" elapsed="0.000293"/>
</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-15T20:09:51.350243" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:51.350071" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:51.350056" 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-15T20:09:51.350536" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:51.350369" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:51.350355" elapsed="0.000257"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:51.347125" elapsed="0.003509"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:51.346660" elapsed="0.004001"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:50.728691" elapsed="0.622095">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:53.356292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:53.558058" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:53.960297" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:53.962803" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:53.352451" elapsed="0.615336">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:53.968468" 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-15T20:09:53.969505" 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-15T20:09:53.969985" 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-15T20:09:53.970454" 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-15T20:09:53.970921" 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-15T20:09:53.971360" 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-15T20:09:53.971817" elapsed="0.000046"/>
</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-15T20:09:53.972410" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:53.972023" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:53.971982" elapsed="0.000603"/>
</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-15T20:09:53.973164" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:53.972701" elapsed="0.000586"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:53.972668" elapsed="0.000669"/>
</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-15T20:09:53.973854" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:53.973450" elapsed="0.000527"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:53.973418" elapsed="0.000611"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:53.969128" elapsed="0.004950"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:53.968651" elapsed="0.005564"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:53.351825" elapsed="0.622500">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:55.981217" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:56.182856" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:56.584938" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:56.586795" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:55.976680" elapsed="0.614325">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:56.591617" 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-15T20:09:56.592686" elapsed="0.000079"/>
</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-15T20:09:56.593183" 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-15T20:09:56.593623" 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-15T20:09:56.594168" 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-15T20:09:56.594651" 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-15T20:09:56.594883" 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-15T20:09:56.595172" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:56.594989" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:56.594968" elapsed="0.000287"/>
</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-15T20:09:56.595482" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:56.595310" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:56.595295" 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-15T20:09:56.595801" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:56.595613" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:56.595598" elapsed="0.000293"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:56.592307" elapsed="0.003607"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:56.591838" elapsed="0.004104"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:55.975696" elapsed="0.620363">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:58.602202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:58.803813" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:59.205948" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:59.208249" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:09:58.598627" elapsed="0.614814">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:09:59.214094" 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-15T20:09:59.215176" 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-15T20:09:59.215484" 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-15T20:09:59.215681" 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-15T20:09:59.215895" 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-15T20:09:59.216094" 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-15T20:09:59.216296" 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-15T20:09:59.216574" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:59.216396" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:59.216375" 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-15T20:09:59.216895" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:59.216708" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:59.216692" elapsed="0.000281"/>
</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-15T20:09:59.217197" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:09:59.217026" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:09:59.217011" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:09:59.214796" elapsed="0.002503"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:09:59.214273" elapsed="0.003052"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:09:58.597448" elapsed="0.619985">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:01.224558" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:01.426243" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:01.828631" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:01.831016" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:01.219687" elapsed="0.616392">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:01.836706" elapsed="0.000095"/>
</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-15T20:10:01.837772" 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-15T20:10:01.838234" 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-15T20:10:01.838811" 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-15T20:10:01.839458" 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-15T20:10:01.839697" 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-15T20:10:01.839913" 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-15T20:10:01.840207" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:01.840012" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:01.839992" 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-15T20:10:01.840516" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:01.840344" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:01.840329" 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-15T20:10:01.840828" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:01.840645" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:01.840630" elapsed="0.000276"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:01.837367" elapsed="0.003562"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:01.836923" elapsed="0.004033"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:01.218708" elapsed="0.622361">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:03.846376" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:04.047964" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:04.450298" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:04.452833" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:03.842714" elapsed="0.615190">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:04.458509" 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-15T20:10:04.459627" 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-15T20:10:04.460126" 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-15T20:10:04.460562" 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-15T20:10:04.461085" 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-15T20:10:04.461527" 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-15T20:10:04.461991" 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-15T20:10:04.463052" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:04.462627" elapsed="0.000549"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:04.462158" elapsed="0.001073"/>
</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-15T20:10:04.463707" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:04.463516" elapsed="0.000261"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:04.463499" elapsed="0.000302"/>
</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-15T20:10:04.464092" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:04.463919" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:04.463902" elapsed="0.000268"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:04.459160" elapsed="0.005032"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:04.458686" elapsed="0.005534"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:03.842081" elapsed="0.622249">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:06.472033" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:06.673592" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:07.075799" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:07.078313" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:06.466720" elapsed="0.617402">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:07.084920" elapsed="0.000083"/>
</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-15T20:10:07.086190" 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-15T20:10:07.086663" 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-15T20:10:07.087280" elapsed="0.000073"/>
</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-15T20:10:07.087933" 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-15T20:10:07.088408" 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-15T20:10:07.088713" 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-15T20:10:07.089020" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:07.088842" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:07.088818" elapsed="0.000297"/>
</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-15T20:10:07.089364" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:07.089180" elapsed="0.000250"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:07.089158" elapsed="0.000297"/>
</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-15T20:10:07.089702" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:07.089507" elapsed="0.000268"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:07.089492" elapsed="0.000308"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:07.085645" elapsed="0.004177"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:07.085148" elapsed="0.004702"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:06.465704" elapsed="0.624261">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:09.097869" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:09.299981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:09.702409" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:09.704726" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:09.092499" elapsed="0.615707">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:09.708652" 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-15T20:10:09.709336" 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-15T20:10:09.709623" 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-15T20:10:09.709969" 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-15T20:10:09.710250" 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-15T20:10:09.710541" 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-15T20:10:09.710856" 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-15T20:10:09.711280" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:09.710999" elapsed="0.000390"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:09.710969" elapsed="0.000458"/>
</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-15T20:10:09.711801" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:09.711508" elapsed="0.000377"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:09.711484" elapsed="0.000435"/>
</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-15T20:10:09.712268" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:09.712010" elapsed="0.000342"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:09.711984" elapsed="0.000412"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:09.709094" elapsed="0.003339"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:09.708801" elapsed="0.003670"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:09.091398" elapsed="0.621227">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:11.719649" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:11.921656" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:12.324014" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:12.326407" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:11.714946" elapsed="0.616821">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:12.332494" 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-15T20:10:12.333155" 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-15T20:10:12.333395" 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-15T20:10:12.333676" 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-15T20:10:12.333905" 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-15T20:10:12.334104" 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-15T20:10:12.334319" 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-15T20:10:12.334623" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:12.334438" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:12.334415" elapsed="0.000293"/>
</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-15T20:10:12.334958" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:12.334783" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:12.334765" 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-15T20:10:12.335537" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:12.335099" elapsed="0.000499"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:12.335083" elapsed="0.000539"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:12.332965" elapsed="0.002683"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:12.332682" elapsed="0.002993"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:11.714006" elapsed="0.621826">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:14.342475" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:14.543946" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:14.945944" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:14.948365" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:14.338155" elapsed="0.615233">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:14.954014" 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-15T20:10:14.955039" 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-15T20:10:14.955485" 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-15T20:10:14.955996" 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-15T20:10:14.956435" 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-15T20:10:14.956875" 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-15T20:10:14.957152" 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-15T20:10:14.957534" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:14.957291" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:14.957264" elapsed="0.000380"/>
</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-15T20:10:14.958063" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:14.957722" elapsed="0.000420"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:14.957700" elapsed="0.000475"/>
</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-15T20:10:14.958489" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:14.958249" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:14.958227" elapsed="0.000372"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:14.954638" elapsed="0.003994"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:14.954198" elapsed="0.004470"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:14.337194" elapsed="0.621641">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:16.965965" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:17.167927" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:17.570147" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:17.572465" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:16.961275" elapsed="0.615982">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:17.577669" 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-15T20:10:17.578339" 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-15T20:10:17.578622" 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-15T20:10:17.578915" 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-15T20:10:17.579190" 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-15T20:10:17.579466" 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-15T20:10:17.579785" 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-15T20:10:17.580172" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:17.579922" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:17.579895" 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-15T20:10:17.580594" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:17.580358" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:17.580337" elapsed="0.000364"/>
</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-15T20:10:17.581034" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:17.580794" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:17.580772" elapsed="0.000368"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:17.578103" elapsed="0.003068"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:17.577811" elapsed="0.003396"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:16.960235" elapsed="0.621123">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:19.589581" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:19.791177" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:20.193256" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:20.195375" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:19.584063" elapsed="0.616475">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:20.201234" 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-15T20:10:20.202263" 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-15T20:10:20.202709" 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-15T20:10:20.203180" 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-15T20:10:20.203667" 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-15T20:10:20.204076" 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-15T20:10:20.204273" 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-15T20:10:20.204552" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:20.204370" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:20.204350" elapsed="0.000281"/>
</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-15T20:10:20.204866" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:20.204683" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:20.204669" 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-15T20:10:20.205388" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:20.204996" elapsed="0.000464"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:20.204981" elapsed="0.000502"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:20.201887" elapsed="0.003619"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:20.201419" elapsed="0.004113"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:19.582875" elapsed="0.622762">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:22.212561" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:22.414638" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:22.816961" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:22.818721" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:22.207874" elapsed="0.613438">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:22.821665" 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-15T20:10:22.822248" 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-15T20:10:22.822454" 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-15T20:10:22.822653" 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-15T20:10:22.822869" 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-15T20:10:22.823069" 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-15T20:10:22.823285" 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-15T20:10:22.823598" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:22.823388" elapsed="0.000267"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:22.823367" elapsed="0.000313"/>
</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-15T20:10:22.823932" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:22.823752" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:22.823719" 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-15T20:10:22.824234" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:22.824064" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:22.824048" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:22.822071" elapsed="0.002264"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:22.821842" elapsed="0.002521"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:22.206890" elapsed="0.617580">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:24.831259" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:25.033129" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:25.435853" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:25.438278" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:24.827387" elapsed="0.616440">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:25.444494" 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-15T20:10:25.445539" 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-15T20:10:25.446017" elapsed="0.000059"/>
</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-15T20:10:25.446468" 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-15T20:10:25.446927" 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-15T20:10:25.447500" elapsed="0.000059"/>
</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-15T20:10:25.448037" 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-15T20:10:25.448408" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:25.448227" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:25.448200" elapsed="0.000356"/>
</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-15T20:10:25.448803" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:25.448613" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:25.448598" 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-15T20:10:25.449104" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:25.448932" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:25.448918" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:25.445155" elapsed="0.004047"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:25.444677" elapsed="0.004553"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:24.826194" elapsed="0.623150">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:27.456554" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:27.658176" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:28.060520" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:28.062966" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:27.451709" elapsed="0.616401">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:28.068726" elapsed="0.000092"/>
</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-15T20:10:28.069823" 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-15T20:10:28.070297" 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-15T20:10:28.070773" elapsed="0.000108"/>
</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-15T20:10:28.071316" 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-15T20:10:28.071843" 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-15T20:10:28.072049" 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-15T20:10:28.072337" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:28.072158" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:28.072131" 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-15T20:10:28.072683" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:28.072512" elapsed="0.000250"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:28.072495" 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-15T20:10:28.073010" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:28.072841" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:28.072825" elapsed="0.000271"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:28.069369" elapsed="0.003750"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:28.068936" elapsed="0.004211"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:27.450708" elapsed="0.622545">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:30.080530" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:30.281971" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:30.684463" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:30.686880" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:30.075667" elapsed="0.616241">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:30.692619" 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-15T20:10:30.693725" elapsed="0.000082"/>
</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-15T20:10:30.694214" 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-15T20:10:30.694706" elapsed="0.000075"/>
</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-15T20:10:30.695174" 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-15T20:10:30.695524" 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-15T20:10:30.695726" 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-15T20:10:30.696025" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:30.695848" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:30.695827" 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-15T20:10:30.696324" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:30.696158" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:30.696144" 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-15T20:10:30.696621" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:30.696450" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:30.696435" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:30.693338" elapsed="0.003380"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:30.692872" elapsed="0.003889"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:30.074676" elapsed="0.622198">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:32.704122" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:32.906818" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:33.309549" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:33.312301" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:32.699167" elapsed="0.618808">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:33.318632" 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-15T20:10:33.319149" 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-15T20:10:33.319356" 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-15T20:10:33.319557" 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-15T20:10:33.319787" 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-15T20:10:33.320028" 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-15T20:10:33.320234" 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-15T20:10:33.320513" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:33.320335" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:33.320314" 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-15T20:10:33.320834" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:33.320648" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:33.320633" 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-15T20:10:33.321141" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:33.320966" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:33.320951" elapsed="0.000269"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:33.318972" elapsed="0.002271"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:33.318745" elapsed="0.002524"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:32.698234" elapsed="0.623152">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:35.328481" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:35.530207" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:35.932903" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:35.935577" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:35.323871" elapsed="0.619547">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:35.943856" 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-15T20:10:35.944507" 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-15T20:10:35.944880" 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-15T20:10:35.945167" 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-15T20:10:35.945482" 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-15T20:10:35.945811" 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-15T20:10:35.946152" 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-15T20:10:35.946547" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:35.946290" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:35.946262" 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-15T20:10:35.946993" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:35.946756" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:35.946714" 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-15T20:10:35.947418" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:35.947174" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:35.947153" elapsed="0.000375"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:35.944261" elapsed="0.003299"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:35.943976" elapsed="0.003619"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:35.322833" elapsed="0.624925">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:37.955943" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:38.157396" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:38.559664" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:38.562142" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:37.951318" elapsed="0.615843">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:38.567834" 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-15T20:10:38.568880" 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-15T20:10:38.569354" 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-15T20:10:38.569878" 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-15T20:10:38.570314" 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-15T20:10:38.570776" 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-15T20:10:38.571213" 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-15T20:10:38.571835" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:38.571418" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:38.571377" elapsed="0.000635"/>
</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-15T20:10:38.572538" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:38.572159" elapsed="0.000499"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:38.572125" elapsed="0.000584"/>
</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-15T20:10:38.573288" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:38.572861" elapsed="0.000554"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:38.572826" elapsed="0.000641"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:38.568459" elapsed="0.005046"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:38.568020" elapsed="0.005588"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:37.950301" elapsed="0.623422">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:40.581834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:40.783703" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:41.186221" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:41.188903" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:40.576211" elapsed="0.617369">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:41.194070" 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-15T20:10:41.194763" 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-15T20:10:41.195074" 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-15T20:10:41.195360" 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-15T20:10:41.195640" 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-15T20:10:41.195943" 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-15T20:10:41.196247" 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-15T20:10:41.196687" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:41.196387" elapsed="0.000406"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:41.196359" elapsed="0.000473"/>
</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-15T20:10:41.197163" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:41.196910" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:41.196889" 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-15T20:10:41.197585" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:41.197353" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:41.197333" elapsed="0.000333"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:41.194497" elapsed="0.003192"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:41.194200" elapsed="0.003517"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:40.575177" elapsed="0.622671">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:43.205318" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:43.407237" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:43.809445" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:43.811676" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:43.200355" elapsed="0.617280">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:43.818319" 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-15T20:10:43.819585" 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-15T20:10:43.820236" 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-15T20:10:43.820697" 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-15T20:10:43.820995" 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-15T20:10:43.821522" 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-15T20:10:43.821821" 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-15T20:10:43.822200" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:43.821956" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:43.821929" 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-15T20:10:43.822615" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:43.822384" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:43.822363" elapsed="0.000359"/>
</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-15T20:10:43.823080" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:43.822814" elapsed="0.000345"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:43.822793" elapsed="0.000399"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:43.819119" elapsed="0.004104"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:43.818507" elapsed="0.004752"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:43.199282" elapsed="0.624119">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:45.830442" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:46.032001" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:46.434293" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:46.436633" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:45.825923" elapsed="0.615767">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:46.442372" 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-15T20:10:46.443468" 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-15T20:10:46.443945" 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-15T20:10:46.444151" 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-15T20:10:46.444441" 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-15T20:10:46.444642" 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-15T20:10:46.444862" 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-15T20:10:46.445158" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:46.444962" elapsed="0.000254"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:46.444942" elapsed="0.000299"/>
</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-15T20:10:46.445479" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:46.445295" elapsed="0.000250"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:46.445280" elapsed="0.000288"/>
</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-15T20:10:46.445811" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:46.445622" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:46.445607" elapsed="0.000284"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:46.443028" elapsed="0.002886"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:46.442554" elapsed="0.003393"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:45.824858" elapsed="0.621209">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:48.453981" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:48.655601" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:49.058122" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:49.060964" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:48.449002" elapsed="0.617074">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:49.066721" elapsed="0.000128"/>
</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-15T20:10:49.067886" 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-15T20:10:49.068339" 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-15T20:10:49.068806" 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-15T20:10:49.069246" 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-15T20:10:49.069678" 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-15T20:10:49.070146" elapsed="0.000046"/>
</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-15T20:10:49.070824" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:49.070357" elapsed="0.000600"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:49.070312" elapsed="0.000701"/>
</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-15T20:10:49.071566" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:49.071161" elapsed="0.000530"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:49.071099" elapsed="0.000685"/>
</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-15T20:10:49.072154" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:49.071981" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:49.071964" elapsed="0.000268"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:49.067465" elapsed="0.004790"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:49.066983" elapsed="0.005298"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:48.447859" elapsed="0.624532">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:51.079374" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:51.280887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:51.683647" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:51.686087" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:51.074809" elapsed="0.616413">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:51.691908" 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-15T20:10:51.692987" 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-15T20:10:51.693481" elapsed="0.000054"/>
</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-15T20:10:51.693973" 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-15T20:10:51.694563" elapsed="0.000062"/>
</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-15T20:10:51.695019" 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-15T20:10:51.695277" 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-15T20:10:51.695938" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:51.695721" elapsed="0.000276"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:51.695384" elapsed="0.000643"/>
</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-15T20:10:51.696260" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:51.696086" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:51.696070" elapsed="0.000270"/>
</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-15T20:10:51.696577" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:51.696403" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:51.696387" elapsed="0.000271"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:51.692567" elapsed="0.004115"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:51.692096" elapsed="0.004614"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:51.073794" elapsed="0.623049">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:53.703322" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:53.904618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:54.307261" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:54.309382" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:53.699091" elapsed="0.615392">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:54.315164" 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-15T20:10:54.316213" 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-15T20:10:54.316660" 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-15T20:10:54.317197" 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-15T20:10:54.317687" elapsed="0.000074"/>
</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-15T20:10:54.318115" 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-15T20:10:54.318316" 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-15T20:10:54.318597" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:54.318418" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:54.318397" 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-15T20:10:54.318927" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:54.318728" elapsed="0.000257"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:54.318714" 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-15T20:10:54.319229" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:54.319060" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:54.319045" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:54.315834" elapsed="0.003494"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:54.315344" elapsed="0.004012"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:53.698175" elapsed="0.621294">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:56.326459" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:56.528603" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:56.930713" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:56.932850" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:56.321946" elapsed="0.615919">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:56.938518" 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-15T20:10:56.939613" 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-15T20:10:56.940095" elapsed="0.000159"/>
</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-15T20:10:56.940668" 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-15T20:10:56.941145" 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-15T20:10:56.941421" 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-15T20:10:56.941697" 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-15T20:10:56.942102" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:56.941853" elapsed="0.000325"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:56.941826" 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-15T20:10:56.942523" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:56.942288" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:56.942268" 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-15T20:10:56.942973" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:56.942715" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:56.942694" elapsed="0.000387"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:56.939227" elapsed="0.003886"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:56.938702" elapsed="0.004449"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:56.320874" elapsed="0.622427">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:58.950152" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:59.151930" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:59.554398" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:59.556658" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:10:58.945512" elapsed="0.616280">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:10:59.562381" elapsed="0.000058"/>
</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-15T20:10:59.563381" 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-15T20:10:59.563871" 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-15T20:10:59.564352" 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-15T20:10:59.564811" 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-15T20:10:59.565148" 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-15T20:10:59.565345" 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-15T20:10:59.565619" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:59.565444" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:59.565423" 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-15T20:10:59.566010" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:59.565766" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:59.565750" elapsed="0.000350"/>
</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-15T20:10:59.566560" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:10:59.566155" elapsed="0.000462"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:10:59.566140" elapsed="0.000502"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:10:59.563009" elapsed="0.003657"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:10:59.562552" elapsed="0.004140"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:10:58.944622" elapsed="0.622190">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:01.573884" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:01.775532" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:02.177900" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:02.180293" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:01.569255" elapsed="0.616201">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:02.186105" 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-15T20:11:02.187137" 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-15T20:11:02.187763" 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-15T20:11:02.188207" 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-15T20:11:02.188489" 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-15T20:11:02.188780" 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-15T20:11:02.189057" 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-15T20:11:02.189438" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:02.189195" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:11:02.189165" elapsed="0.000391"/>
</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-15T20:11:02.189888" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:02.189628" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:11:02.189607" 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-15T20:11:02.190308" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:02.190069" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:11:02.190048" elapsed="0.000367"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:11:02.186725" elapsed="0.003721"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:11:02.186287" elapsed="0.004196"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:11:01.568256" elapsed="0.622368">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:04.197162" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:04.399121" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:04.801266" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:04.803593" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:04.192938" elapsed="0.615781">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:04.809377" 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-15T20:11:04.810402" 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-15T20:11:04.810934" 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-15T20:11:04.811321" 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-15T20:11:04.811517" 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-15T20:11:04.811710" 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-15T20:11:04.811922" 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-15T20:11:04.812200" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:04.812023" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:11:04.812001" 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-15T20:11:04.812504" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:04.812334" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:11:04.812318" 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-15T20:11:04.812826" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:04.812642" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-04-15T20:11:04.812626" elapsed="0.000279"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:11:04.810020" elapsed="0.002908"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:11:04.809557" elapsed="0.003397"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-15T20:11:04.191946" elapsed="0.621111">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T20:11:04.813158" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:02.489001" elapsed="302.324252">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:06:02.488378" elapsed="302.325054">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T20:11:04.817438" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:05.018780" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:05.420891" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:05.423152" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:04.815287" elapsed="0.612753">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:05.428568" 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-15T20:11:05.429070" 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-15T20:11:05.429528" elapsed="0.000044"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:04.814943" elapsed="0.614869">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:06.437571" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:06.639374" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:07.042018" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:07.044668" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:06.432318" elapsed="0.618274">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:07.050992" elapsed="0.000040"/>
</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-15T20:11:07.051239" 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-15T20:11:07.051478" elapsed="0.000037"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:06.431110" elapsed="0.620536">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:08.058402" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:08.260362" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:08.662499" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:08.664910" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:08.053550" elapsed="0.616415">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:08.670643" 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-15T20:11:08.671143" elapsed="0.000046"/>
</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-15T20:11:08.671599" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:08.052571" elapsed="0.619328">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:09.679524" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:09.881644" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:10.284250" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:10.286479" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:09.674089" elapsed="0.617398">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:10.292122" 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-15T20:11:10.292583" 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-15T20:11:10.293109" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:09.672964" elapsed="0.620410">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:11.299452" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:11.501264" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:11.903867" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:11.906354" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:11.295264" elapsed="0.616193">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:11.912143" 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-15T20:11:11.912652" 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-15T20:11:11.913171" elapsed="0.000052"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:11.294310" elapsed="0.619138">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:12.920936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:13.122807" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:13.524988" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:13.527316" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:12.915505" elapsed="0.617063">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:13.533221" 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-15T20:11:13.533685" elapsed="0.000072"/>
</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-15T20:11:13.534178" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:12.914496" elapsed="0.619950">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:14.541843" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:14.743946" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:15.146450" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:15.149176" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:14.536606" elapsed="0.617942">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:15.155291" elapsed="0.000081"/>
</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-15T20:11:15.155923" elapsed="0.000057"/>
</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-15T20:11:15.156455" elapsed="0.000054"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:14.535500" elapsed="0.621300">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:16.163126" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:16.365257" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:16.767658" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:16.769998" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:16.158727" elapsed="0.616911">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:16.776365" 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-15T20:11:16.776864" 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-15T20:11:16.777322" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:16.157811" elapsed="0.619772">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:17.783258" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:17.984826" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:18.386987" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:18.389255" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:17.779772" elapsed="0.614516">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:18.394985" 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-15T20:11:18.395451" elapsed="0.000046"/>
</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-15T20:11:18.395821" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:17.778806" elapsed="0.617186">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:19.402935" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:19.608715" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:20.011167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:20.013454" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:19.398035" elapsed="0.620761">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:20.019258" 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-15T20:11:20.019566" 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-15T20:11:20.019889" elapsed="0.000031"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:19.397042" elapsed="0.623045">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:21.026472" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:21.228151" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:21.630445" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:21.632460" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:21.021984" elapsed="0.613981">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:21.636427" 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-15T20:11:21.636766" 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-15T20:11:21.637101" elapsed="0.000037"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:21.021026" elapsed="0.616278">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:22.643639" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:22.845383" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:23.247885" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:23.250828" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:22.639208" elapsed="0.616745">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:23.256588" elapsed="0.000075"/>
</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-15T20:11:23.257165" 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-15T20:11:23.257729" elapsed="0.000057"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:22.638304" elapsed="0.619595">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:24.264487" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:24.466597" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:24.868909" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:24.871243" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:24.259876" elapsed="0.616668">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:24.877377" 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-15T20:11:24.877935" 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-15T20:11:24.878420" elapsed="0.000063"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:24.258901" elapsed="0.619884">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:25.885247" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:26.087133" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:26.489450" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:26.492179" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:25.880688" elapsed="0.617395">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:26.498858" elapsed="0.000078"/>
</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-15T20:11:26.499456" 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-15T20:11:26.500378" elapsed="0.000116"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:25.879694" elapsed="0.621190">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:27.507985" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:27.709965" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:28.112512" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:28.114943" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:27.502901" elapsed="0.617488">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:28.121422" elapsed="0.000075"/>
</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-15T20:11:28.122063" elapsed="0.000064"/>
</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-15T20:11:28.122661" elapsed="0.000059"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:27.501930" elapsed="0.621109">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:29.129711" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:29.331538" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:29.733910" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:29.736223" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:29.125070" elapsed="0.615898">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:29.741407" 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-15T20:11:29.741707" elapsed="0.000068"/>
</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-15T20:11:29.742036" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:29.124094" elapsed="0.618132">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:30.749685" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:30.951915" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:31.354208" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:31.356689" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:30.745023" elapsed="0.615694">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:31.361164" 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-15T20:11:31.361463" elapsed="0.000029"/>
</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-15T20:11:31.361771" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:30.743327" elapsed="0.618627">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:32.368499" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:32.570253" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:32.972677" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:32.975114" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:32.363726" elapsed="0.616544">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:32.981132" 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-15T20:11:32.981627" 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-15T20:11:32.982211" elapsed="0.000025"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:32.362868" elapsed="0.619484">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:33.990044" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:34.191459" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:34.594084" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:34.596398" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:33.984470" elapsed="0.617104">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:34.602201" 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-15T20:11:34.602499" 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-15T20:11:34.602806" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:33.983359" elapsed="0.619624">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:35.609544" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:35.811415" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.217507" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.219574" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:35.604877" elapsed="0.619711">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:36.225227" 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-15T20:11:36.225696" elapsed="0.000076"/>
</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-15T20:11:36.226196" elapsed="0.000048"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:35.603943" elapsed="0.622518">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T20:11:36.226665" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:04.814203" elapsed="31.412806">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:04.813672" elapsed="31.413701">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T20:11:36.234023" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.435241" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.837898" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.839820" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:36.229980" elapsed="0.614861">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:36.845340" elapsed="0.000053"/>
</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-15T20:11:36.845815" elapsed="0.000048"/>
</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-15T20:11:36.846280" elapsed="0.000046"/>
</kw>
<arg>${less_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-04-15T20:11:36.229178" elapsed="0.617356">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:36.227848" elapsed="0.619029">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s4-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-15T20:11:36.849591" elapsed="0.000168"/>
</kw>
<status status="PASS" start="2026-04-15T20:11:36.849349" elapsed="0.000449"/>
</branch>
<status status="PASS" start="2026-04-15T20:11:36.849325" elapsed="0.000499"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-15T20:11:36.850299" 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-15T20:11:36.850004" elapsed="0.000321"/>
</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-15T20:11:36.851206" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-04-15T20:11:36.850980" elapsed="0.000402"/>
</branch>
<status status="PASS" start="2026-04-15T20:11:36.850962" elapsed="0.000444"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T20:11:36.855701" 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-15T20:11:36.851548" elapsed="0.004226"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T20:11:36.938799" 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-15T20:11:36.939039" 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-15T20:11:36.855937" elapsed="0.083137"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-15T20:11:36.939168" elapsed="0.000067"/>
</return>
<msg time="2026-04-15T20:11:36.939511" 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 20 and returns read buffer response.</doc>
<status status="PASS" start="2026-04-15T20:11:36.850657" elapsed="0.088885"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-04-15T20:11:36.940147" 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-15T20:11:36.939814" elapsed="0.000361"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-15T20:11:36.940916" 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-15T20:11:36.940351" elapsed="0.000595"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-04-15T20:11:36.941628" 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-15T20:11:36.941211" elapsed="0.000499">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-15T20:11:36.848805" elapsed="0.093045">0.0 != 300.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-15T20:11:36.847293" elapsed="0.094733">0.0 != 300.0</status>
</test>
<test id="s1-s4-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-15T20:11:36.949782" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:36.949520" elapsed="0.000324"/>
</branch>
<status status="PASS" start="2026-04-15T20:11:36.949497" elapsed="0.000375"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-15T20:11:36.951111" 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-15T20:11:36.950016" elapsed="0.001154"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-15T20:11:37.151812" 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.519 seconds
[?2004h[jenkins@releng-38640-217-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-15T20:11:36.951349" elapsed="0.200638"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T20:11:37.152271" elapsed="0.000249"/>
</kw>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-04-15T20:11:36.947453" elapsed="0.205144"/>
</kw>
<doc>Stop Mininet.</doc>
<status status="PASS" start="2026-04-15T20:11:36.942408" elapsed="0.210345"/>
</test>
<test id="s1-s4-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-15T20:11:37.157501" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:37.358963" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:37.760848" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:37.762772" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:37.154753" elapsed="0.613742">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:37.769329" elapsed="0.000086"/>
</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-15T20:11:37.770242" elapsed="0.000055"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:11:37.769826" elapsed="0.000565"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:11:37.769606" elapsed="0.000916"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T20:11:37.154380" elapsed="0.616452">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:38.777418" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:38.979309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:39.382136" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:39.385055" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:38.773150" elapsed="0.617523">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:39.391352" elapsed="0.000065"/>
</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-15T20:11:39.392189" elapsed="0.000054"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:11:39.391791" elapsed="0.000503"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:11:39.391536" elapsed="0.000788"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T20:11:38.772243" elapsed="0.620191">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:40.399852" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:40.601631" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:41.003862" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:41.006001" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:40.394559" elapsed="0.616590">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:41.011789" elapsed="0.000061"/>
</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-15T20:11:41.012382" elapsed="0.000023"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:11:41.012106" elapsed="0.000334"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:11:41.011965" elapsed="0.000505"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T20:11:40.393467" elapsed="0.619118">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:42.019280" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:42.221045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:42.623301" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:42.625905" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:42.014584" elapsed="0.614618">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-15T20:11:42.629767" 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-15T20:11:42.630293" elapsed="0.000034"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-15T20:11:42.629992" elapsed="0.000388"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-15T20:11:42.629892" elapsed="0.000531"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-15T20:11:42.013565" elapsed="0.617100">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-15T20:11:42.630844" 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.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:37.153673" elapsed="5.477308">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:37.153180" elapsed="5.478074">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:42.633006" 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-15T20:11:42.632443" elapsed="0.000603"/>
</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-15T20:11:42.636024" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-15T20:11:42.635595" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-04-15T20:11:42.635564" elapsed="0.000573"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-15T20:11:42.636618" 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-15T20:11:42.636790" 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-15T20:11:42.636352" elapsed="0.000476"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:11:42.637601" level="INFO">Attempting to execute command "sudo iptables -v -F" on remote system "10.30.170.185" 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-15T20:11:42.637039" elapsed="0.000628"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-15T20:11:42.638422" 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-15T20:11:42.637908" elapsed="0.000549"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-15T20:11:42.639680" level="INFO">Length is 0.</msg>
<msg time="2026-04-15T20:11:42.639804" 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-15T20:11:42.639283" elapsed="0.000555"/>
</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-15T20:11:42.640063" elapsed="0.000468"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-15T20:11:42.641701" level="INFO">Logging into '10.30.170.185:22' as 'jenkins'.</msg>
<msg time="2026-04-15T20:11:43.352765" 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 Wed Apr 15 20:11:42 UTC 2026

  System load:  0.0                Processes:             120
  Usage of /:   10.3% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.185
  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: Wed Apr 15 20:06:02 2026 from 10.30.170.30
[?2004h[jenkins@releng-38640-217-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-15T20:11:42.641278" elapsed="0.711654"/>
</kw>
<msg time="2026-04-15T20:11:43.353028" 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-15T20:11:42.640782" elapsed="0.712446"/>
</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-15T20:11:42.638816" elapsed="0.714544"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-15T20:11:43.353946" level="INFO">Executing command 'sudo iptables -v -F'.</msg>
<msg time="2026-04-15T20:11:43.396947" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-15T20:11:43.397267" 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-15T20:11:43.397376" 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-15T20:11:43.353656" elapsed="0.043772"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T20:11:43.397865" elapsed="0.000536"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-15T20:11:43.399660" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-15T20:11:43.398922" elapsed="0.000872"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T20:11:43.400304" elapsed="0.000045"/>
</return>
<status status="NOT RUN" start="2026-04-15T20:11:43.399983" elapsed="0.000441"/>
</branch>
<status status="PASS" start="2026-04-15T20:11:43.399930" 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-15T20:11:43.400887" elapsed="0.000061"/>
</return>
<status status="PASS" start="2026-04-15T20:11:43.400602" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-04-15T20:11:43.400568" elapsed="0.000509"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-15T20:11:43.401150" 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-15T20:11:43.407447" elapsed="0.000359"/>
</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-15T20:11:43.407979" elapsed="0.000165"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-15T20:11:43.408296" elapsed="0.000097"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-15T20:11:43.401965" elapsed="0.006483"/>
</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-15T20:11:42.634915" elapsed="0.773639"/>
</kw>
<msg time="2026-04-15T20:11:43.408612" 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-15T20:11:42.634034" elapsed="0.774639"/>
</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-15T20:11:42.633366" elapsed="0.775404"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-15T20:11:43.411813" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-15T20:11:43.613162" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-15T20:11:44.015470" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-15T20:11:44.017963" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:43.409310" elapsed="0.613896">ConnectionError: HTTPConnectionPool(host='10.30.170.185', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T20:11:43.408935" elapsed="0.614451"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-04-15T20:11:44.024063" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-15T20:11:44.023848" elapsed="0.000392"/>
</kw>
<doc>Delete all sessions.</doc>
<status status="PASS" start="2026-04-15T20:11:42.632039" elapsed="1.392373"/>
</kw>
<doc>Test reconciliation of chained groups and flows after switch connection and controller are restarted.</doc>
<status status="FAIL" start="2026-04-15T19:57:05.908438" elapsed="878.116055"/>
</suite>
<status status="FAIL" start="2026-04-15T19:57:05.907164" elapsed="878.119586"/>
</suite>
<status status="FAIL" start="2026-04-15T19:48:09.508382" elapsed="1414.520242"/>
</suite>
<statistics>
<total>
<stat pass="4" fail="390" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">https://bugs.opendaylight.org/show_bug.cgi?id=6595</stat>
</tag>
<suite>
<stat name="openflowplugin-sanity.txt" id="s1" pass="4" fail="390" skip="0">openflowplugin-sanity.txt</stat>
<stat name="MD SAL NSF OF10" id="s1-s1" pass="0" fail="21" skip="0">openflowplugin-sanity.txt.MD SAL NSF OF10</stat>
<stat name="010 Restconf Inventory" id="s1-s1-s1" pass="0" fail="7" skip="0">openflowplugin-sanity.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-sanity.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-sanity.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-sanity.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-sanity.txt.MD SAL NSF OF13</stat>
<stat name="010 Restconf Inventory" id="s1-s2-s1" pass="0" fail="7" skip="0">openflowplugin-sanity.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-sanity.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-sanity.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-sanity.txt.MD SAL NSF OF13.040 Restconf Frm</stat>
<stat name="Stat Manager extended" id="s1-s3" pass="0" fail="326" skip="0">openflowplugin-sanity.txt.Stat Manager extended</stat>
<stat name="010 SM add upd del flows" id="s1-s3-s1" pass="0" fail="174" skip="0">openflowplugin-sanity.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-sanity.txt.Stat Manager extended.020 SM sal add upd del flows</stat>
<stat name="Reconciliation" id="s1-s4" pass="4" fail="19" skip="0">openflowplugin-sanity.txt.Reconciliation</stat>
<stat name="010 Group Flows" id="s1-s4-s1" pass="4" fail="19" skip="0">openflowplugin-sanity.txt.Reconciliation.010 Group Flows</stat>
</suite>
</statistics>
<errors>
<msg time="2026-04-15T19:48:13.061047" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:13.262658" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:13.665255" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:15.694035" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:15.895328" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:16.297281" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:18.324936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:18.526306" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:18.929000" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:20.955820" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:21.157092" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:21.559003" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:23.587396" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:23.788822" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.190891" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.214259" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.415532" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:24.817574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:26.846159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:27.047488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:27.449269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:29.474695" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:29.676158" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:30.079050" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:32.108892" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:32.310355" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:32.712941" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:34.743419" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:34.945246" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:35.347911" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:48:35.376329" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.577829" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:35.979913" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:38.005176" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:38.206620" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:38.608816" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:40.636245" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:40.838201" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:41.241018" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:43.267680" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:43.469712" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:43.872467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:45.898408" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.100015" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.502372" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.529008" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:46.730366" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:47.132883" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:49.156532" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:49.358016" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:49.760058" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:51.787214" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:51.988815" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:52.391227" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:54.418312" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:54.619866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:55.022786" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.050835" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.252383" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.654920" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.677372" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:57.878865" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:48:58.281345" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:00.307380" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:00.508905" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:00.911155" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:02.937174" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:03.138716" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:03.540644" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:05.565647" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:05.767030" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:06.169511" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:08.192682" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:08.393999" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:08.795960" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:08.827354" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:09.029404" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:09.431277" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:11.451956" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:11.653439" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:12.055794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:14.081457" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:14.283137" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:14.685260" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:16.711799" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:16.913453" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:17.316220" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:19.341222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:19.542795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:19.945141" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:19.973967" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:20.175190" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:20.576798" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:22.597049" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:22.798666" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:23.200831" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:25.223811" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:25.425266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:25.826932" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:27.851194" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:28.053042" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:28.455293" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:30.480439" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:30.681878" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:31.083900" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:49:31.138662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:31.340206" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:31.742162" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:33.758442" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:33.959936" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:34.361619" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:36.386624" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:36.588236" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:36.990654" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:39.017046" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:39.218363" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:39.620513" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:41.644541" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:41.845950" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.248027" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.274036" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.475434" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:42.877458" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:44.894083" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:45.095795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:45.497965" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:47.514894" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:47.716852" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:48.118885" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:50.135952" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:50.337916" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:50.739823" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:52.757056" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:52.959221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.361970" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.384936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.586309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:53.988574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:56.008166" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:56.209931" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:56.611776" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:58.627625" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:58.829790" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:49:59.232172" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:01.249719" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:01.451770" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:01.853804" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:03.868322" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:04.070130" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:04.472230" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:06.489178" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:06.691046" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:07.093015" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:09.109587" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:09.311521" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:09.713831" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:11.731999" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:11.933915" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:12.335946" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:14.353124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:14.555388" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:14.961244" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:16.978462" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:17.179928" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:17.581935" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:19.600125" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:19.801995" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:20.204916" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:22.222331" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:22.424229" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:22.826352" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:24.840261" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:25.042212" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:25.444152" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:27.458356" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:27.659823" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:28.061847" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:30.077074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:30.278859" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:30.680757" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:32.694754" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:32.896506" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:33.298333" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:35.314282" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:35.515573" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:35.917720" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:37.934812" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:38.136769" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:38.539178" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:40.557050" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:40.758538" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:41.160538" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:43.175677" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:43.377494" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:43.779711" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:45.796200" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:45.997797" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:46.399883" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:48.415834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:48.617642" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:49.019680" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:51.035606" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:51.237323" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:51.639373" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:53.655202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:53.856929" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.259673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.284523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.485976" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:54.887778" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:56.903734" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:57.105525" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:57.507893" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:59.525547" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:50:59.727410" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:00.129818" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:02.146722" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:02.348782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:02.750833" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:04.766670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:04.968379" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:05.370853" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:51:05.425342" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:05.626923" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:06.029309" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:08.055230" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:08.256728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:08.658791" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:10.682715" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:10.884358" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:11.286851" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:13.314168" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:13.515809" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:13.918161" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:15.938623" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:16.140384" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:16.542656" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:51:16.561369" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:16.762836" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:17.164795" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:19.183936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:19.385764" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:19.788529" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:21.808260" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:22.009905" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:22.411903" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:24.431624" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:24.633004" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:25.034985" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.055033" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.256257" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.658408" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.675252" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:27.876691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:28.278941" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:30.291822" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:30.493071" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:30.895083" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:32.913471" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:33.114975" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:33.516984" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:35.536255" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:35.737788" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:36.139656" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.159483" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.361217" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.764085" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.782890" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:38.984252" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:39.386211" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:41.405073" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:41.606607" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:42.008641" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:44.029163" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:44.230907" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:44.632780" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:46.651770" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:46.853312" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:47.255413" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:49.274626" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:49.475929" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:49.877816" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:49.928344" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.129728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.531909" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.547689" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:50.748951" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.151221" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.169722" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.371124" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:51.773044" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:53.794651" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:53.996251" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:54.398694" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:56.420085" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:56.621387" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:57.023587" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:59.041625" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:59.243878" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:51:59.646726" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:01.669151" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:01.871544" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.274629" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.288674" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.490715" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.893625" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:02.907317" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.109697" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.512583" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.532304" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:03.733832" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:04.136002" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:06.161371" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:06.363052" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:06.765467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:08.791381" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:08.993614" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:09.395953" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:11.422406" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:11.623904" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:12.025918" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:14.051845" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:14.253293" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:14.655688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:17.956428" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:18.157828" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:18.559839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:20.585228" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:20.786796" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:21.188878" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:23.214404" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:23.415913" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:23.817863" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:25.840977" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:26.042555" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:26.444609" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:28.470218" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:28.671548" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.073622" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.099522" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.301357" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:29.703572" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:31.729705" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:31.931641" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:32.334259" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:34.360760" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:34.562406" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:34.964651" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:36.993896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:37.195346" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:37.596772" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:39.618708" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:39.820334" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:40.222488" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:52:40.242663" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:40.444138" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:40.846536" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:42.871213" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:43.072594" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:43.475201" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:45.500511" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:45.702121" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:46.104420" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:48.133251" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:48.334877" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:48.736981" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:50.761627" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:50.963152" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.365368" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.388203" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.589853" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:51.991774" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:54.019845" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:54.221359" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:54.624047" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:56.648069" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:56.849467" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:57.251574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:59.278476" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:59.480154" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:52:59.882269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:01.905923" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.107519" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.509425" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.530234" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:02.731827" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:03.133882" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:05.159474" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:05.361682" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:05.764088" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:07.788808" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:07.990226" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:08.392404" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:10.417137" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:10.618620" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:11.020725" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.047008" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.248676" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.650684" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.680239" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:13.881626" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:14.283846" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:16.304641" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:16.506274" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:16.908769" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:18.937608" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:19.139081" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:19.541087" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:21.567771" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:21.769309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:22.171358" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:24.196097" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:24.397538" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:24.799531" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:24.827897" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:25.029244" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:25.431320" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:27.457367" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:27.658778" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:28.061068" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:30.085007" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:30.286532" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:30.688701" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:32.714134" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:32.915622" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:33.317700" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.341930" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.543456" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.945536" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:53:35.999874" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:36.201151" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:36.603136" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:38.629612" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:38.830948" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:39.233022" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:41.259399" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:41.460875" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:41.863429" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:43.889232" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:44.090520" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:44.492533" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:46.517203" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:46.718507" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.120583" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.149705" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.351032" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:47.753234" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:49.771933" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:49.973728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:50.377189" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:52.396436" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:52.598526" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:53.000635" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:55.017261" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:55.219406" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:55.621590" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:57.638380" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:57.840473" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.242634" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.265223" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.466621" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:53:58.868936" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:00.886524" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:01.088128" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:01.490477" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:03.507446" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:03.709152" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:04.111714" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:06.127928" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:06.329344" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:06.731287" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:08.742802" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:08.944400" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:09.346590" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:11.364174" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:11.566115" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:11.968231" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:13.985290" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:14.187208" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:14.589125" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:16.605783" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:16.808060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:17.210381" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:19.228021" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:19.429510" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:19.832013" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:21.848368" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:22.050076" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:22.451969" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:24.469302" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:24.671336" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:25.073469" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:27.090611" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:27.292185" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:27.694357" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:29.715477" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:29.917100" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:30.319490" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:32.336945" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:32.538604" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:32.940523" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:34.953032" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:35.154292" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:35.555845" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:37.568093" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:37.769920" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:38.172068" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:40.190249" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:40.392926" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:40.795298" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:42.812161" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:43.014512" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:43.416926" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:45.433687" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:45.635678" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:46.038176" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:48.058506" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:48.260300" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:48.662283" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:50.678990" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:50.880902" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:51.282997" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:53.301350" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:53.503436" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:53.905544" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:55.923273" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:56.124848" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:56.526788" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:58.542190" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:58.744191" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.146410" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.169814" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.371295" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:54:59.773196" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:01.789124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:01.991181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:02.393327" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:04.410214" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:04.611923" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:05.013964" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:07.028264" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:07.229584" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:07.630970" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:09.642606" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:09.843908" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.245834" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.300603" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.501875" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:10.903795" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:12.929468" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:13.131078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:13.533046" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:15.559963" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:15.761342" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:16.163193" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:18.189346" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:18.390687" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:18.792665" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:20.817546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:21.018953" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:21.421013" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:55:21.437892" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:21.639146" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:22.041355" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:24.062071" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:24.263341" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:24.665449" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:26.686075" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:26.887330" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:27.289269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:29.308649" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:29.510117" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:29.912214" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:31.932224" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.133791" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.536260" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.553095" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:32.754436" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:33.156325" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:35.174905" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:35.376326" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:35.778305" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:37.798991" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:38.000501" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:38.402527" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:40.423716" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:40.625350" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:41.027222" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.048172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.249952" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.652072" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.668919" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:43.870150" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:44.272274" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:46.291450" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:46.492885" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:46.894984" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:48.914810" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:49.116262" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:49.518480" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:51.539225" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:51.740691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:52.142925" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:54.162143" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:54.363712" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:54.765618" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:54.812549" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.013820" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.415879" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.429309" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:55.630699" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.032812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.050469" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.251721" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:56.653878" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:58.675051" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:58.876656" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:55:59.278634" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:01.295240" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:01.497041" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:01.899299" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:03.925314" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:04.126660" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:04.528812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:06.550551" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:06.752179" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.154274" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.169555" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.370845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.772306" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.781276" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:07.982702" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:08.384632" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:08.401003" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:08.602422" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:09.004724" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:11.026661" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:11.228435" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:11.631410" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:13.654647" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:13.856678" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:14.258824" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:16.280358" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:16.481795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:16.884139" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:18.906360" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.107782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.510146" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.529902" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:19.731348" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.133492" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.146311" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.347635" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.749474" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.769551" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:20.970909" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:21.372707" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:23.399529" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:23.600981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:24.003015" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:26.030179" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:26.231581" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:26.634209" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:28.661177" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:28.862618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:29.265215" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:31.293313" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:31.494816" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:31.896888" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.072642" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.273981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:35.675998" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:36.697493" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:36.898816" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:37.300999" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.321688" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.523172" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:38.925143" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:39.944415" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:40.145902" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:40.547815" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:41.569206" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:41.770418" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:42.172466" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.192979" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.394491" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:43.796346" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:44.816169" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:45.017583" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:45.419526" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:46.439328" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:46.640840" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:47.043221" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.065459" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.266793" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:48.668571" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:49.689281" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:49.891078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.293141" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.483896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:50.685115" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:51.086927" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.105516" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.307017" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:52.709167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:53.731395" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:53.932601" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:54.334493" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.356496" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.557957" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:55.960094" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:56.981511" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:57.182828" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:57.584670" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:58.603518" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:58.804780" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:56:59.206664" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.228175" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.429446" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:00.831613" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:01.851541" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:02.052831" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:02.454945" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:03.475482" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:03.676910" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:04.078684" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.100510" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.301912" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:05.703829" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:06.611642" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:06.812884" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.214823" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.656358" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:07.857997" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.260467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.701198" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:08.902689" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:09.304705" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:57:11.848431" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:12.049625" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:12.451570" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:13.470772" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:13.672243" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:14.074152" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:15.093855" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:15.298254" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:15.700353" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:16.719302" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:16.921156" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:17.323300" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:18.342618" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:18.544232" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:18.946165" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:19.965963" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:20.167266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:20.569217" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:21.589159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:21.790785" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:22.192692" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:23.211641" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:23.413360" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:23.815418" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:24.832663" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:25.034256" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:25.436094" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:26.450101" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:26.652185" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:27.054183" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:28.074074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:28.275429" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:28.677577" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:29.693202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:29.894866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:30.296912" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:31.316662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:31.518349" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:31.920263" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:32.941338" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:33.143282" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:33.545318" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:34.563947" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:34.765361" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:35.167322" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:36.184996" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:36.386779" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:36.788782" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:37.807143" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:38.009155" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:38.411126" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:39.428332" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:39.630111" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:40.032051" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:41.052097" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:41.253934" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:41.656082" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:42.675317" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:42.877041" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.279020" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.296390" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.497690" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:43.899830" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:44.917711" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:45.119365" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:45.521688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:46.536638" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:46.738255" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:47.140189" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:48.154585" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:48.356222" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:48.758593" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:49.772950" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:49.974429" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:50.376446" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:51.391147" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:51.592713" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:51.994898" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:53.010418" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:53.212674" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:53.614580" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:54.629643" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:54.831251" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:55.233766" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:56.248555" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:56.450462" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:56.852292" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:57.866964" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:58.068641" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:58.471046" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:59.486607" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:57:59.688356" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:00.090192" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:01.104699" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:01.306655" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:01.708710" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:02.724056" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:02.925664" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:03.327933" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:04.344644" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:04.546324" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:04.948128" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:05.964477" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:06.165914" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:06.567887" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:07.583542" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:07.785295" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:08.187407" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:09.203648" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:09.405236" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:09.807916" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:10.823587" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:11.025479" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:11.427418" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:12.442285" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:12.643785" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:13.045818" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.062092" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.263596" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.665638" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.678853" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:14.880173" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:15.282138" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:58:16.520759" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:16.722111" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:17.124248" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:18.141265" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:18.342827" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:18.744867" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:19.760384" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:19.962158" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:20.364237" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:21.378699" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:21.581014" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:21.982904" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:22.997921" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:23.199308" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:23.601317" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:24.612301" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:24.814275" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:25.217538" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:26.231982" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:26.433940" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:26.836514" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:27.849342" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:28.050642" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:28.452910" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:29.468124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:29.669895" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:30.071920" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:31.086516" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:31.288291" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:31.690857" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:32.707447" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:32.909849" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:33.312107" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:34.328208" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:34.530215" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:34.932430" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:35.948172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:36.149833" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:36.551914" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:37.564803" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:37.766439" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:38.168505" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:39.179132" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:39.380816" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:39.783095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:40.798918" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:41.001130" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:41.403217" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:42.419522" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:42.621355" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:43.023440" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:44.040448" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:44.242060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:44.644265" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:45.659632" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:45.861199" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:46.263243" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:47.278254" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:47.479602" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:47.881624" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:48.753834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:48.955257" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:49.357378" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:50.376263" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:50.577968" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:50.980438" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:51.999950" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:52.201772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:52.603612" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:53.623391" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:53.825029" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:54.227248" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:55.249934" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:55.452297" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:55.854362" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:56.875458" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:57.077502" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:57.480062" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:58.501153" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:58.702811" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:58:59.105237" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:00.128533" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:00.329953" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:00.732188" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:01.751777" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:01.953159" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:02.355409" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:03.374556" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:03.576316" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:03.978301" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:04.994886" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:05.196147" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:05.597606" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:06.613964" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:06.815328" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:07.216963" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:08.236614" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:08.438653" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:08.840944" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:09.861908" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:10.063819" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:10.466510" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:11.479328" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:11.680856" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:12.082475" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:13.098281" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:13.299769" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:13.701560" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:14.721996" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:14.924098" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:15.326212" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:16.344635" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:16.546246" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:16.948444" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:17.961517" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:18.162775" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:18.564895" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:19.624636" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:19.826363" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:20.228933" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T19:59:20.247274" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.448639" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.851048" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', 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-15T19:59:20.866373" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:21.067958" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:21.470385" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:22.485594" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:22.687586" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:23.089544" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:24.106593" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:24.308142" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:24.710490" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:25.725393" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:25.927100" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:26.329001" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:27.345039" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:27.546829" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:27.948776" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:28.964200" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:29.165681" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:29.567850" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:30.583544" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:30.784898" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:31.186876" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:32.202146" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:32.404219" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:32.806197" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:33.821925" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:34.023545" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:34.425721" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:35.441546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:35.643058" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:36.045610" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:37.059621" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:37.261163" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:37.663297" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:38.682246" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:38.883835" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:39.286167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:40.302104" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:40.503516" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:40.905459" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:41.921051" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:42.122488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:42.524794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:43.541619" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:43.743531" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:44.145492" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:45.161146" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:45.362794" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:45.765264" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:46.781670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:46.983178" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:47.384995" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:48.398891" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:48.600514" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:49.002607" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:50.018584" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:50.220148" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:50.622143" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:51.637369" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:51.839221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.241130" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.255837" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.457122" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T19:59:52.859218" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:06:02.492764" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:02.694862" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:03.098108" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:05.117808" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:05.319903" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:05.721834" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:07.740791" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:07.942621" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:08.345800" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:10.364791" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:10.566927" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:10.969235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:12.988449" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:13.190670" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:13.593654" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:15.611967" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:15.813791" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:16.215850" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:18.234560" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:18.435935" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:18.837925" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:20.856134" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:21.058229" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:21.460941" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:23.480023" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:23.681934" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:24.083992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:26.103633" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:26.305488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:26.707397" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:28.725957" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:28.927489" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:29.330830" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:31.350243" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:31.552254" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:31.954495" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:33.974372" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:34.176216" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:34.578401" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:36.598325" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:36.799989" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:37.203179" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:39.222887" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:39.424930" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:39.827341" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:41.849305" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:42.050885" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:42.452668" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:44.473990" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:44.675536" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:45.077514" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:47.096709" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:47.298321" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:47.700289" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:49.719433" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:49.920850" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:50.322805" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:52.341465" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:52.543337" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:52.945259" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:54.964668" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:55.166533" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:55.568575" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:57.588071" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:57.789450" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:06:58.191434" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:00.210044" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:00.411874" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:00.814058" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:02.835085" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:03.037023" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:03.438958" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:05.458952" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:05.660782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:06.063060" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:08.084048" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:08.286309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:08.688706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:10.707382" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:10.908928" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:11.310968" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:13.329758" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:13.531434" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:13.933454" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:15.951461" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:16.153261" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:16.555264" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:18.575604" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:18.777293" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:19.179552" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:21.196928" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:21.398920" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:21.801557" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:23.821862" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:24.023546" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:24.425840" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:26.444618" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:26.646552" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:27.048514" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:29.070936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:29.272957" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:29.675921" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:31.695013" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:31.896483" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:32.298837" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:34.318836" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:34.520965" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:34.923212" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:36.942147" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:37.143704" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:37.546092" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:39.567275" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:39.768977" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:40.171202" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:42.190947" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:42.392366" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:42.794048" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:44.813087" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:45.014531" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:45.416529" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:47.435664" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:47.638025" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:48.040119" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:50.059185" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:50.260864" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:50.663001" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:52.682800" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:52.884599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:53.286794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:55.304314" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:55.506099" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:55.908501" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:57.927304" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:58.128806" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:07:58.530888" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:00.550046" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:00.751979" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:01.154356" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:03.171706" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:03.374205" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:03.776493" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:05.795936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:05.997555" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:06.399835" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:08.418814" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:08.620346" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:09.022350" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:11.037644" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:11.238990" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:11.641278" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:13.660604" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:13.862314" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:14.265018" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:16.288050" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:16.489785" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:16.891608" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:18.910073" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:19.111910" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:19.514635" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:21.532692" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:21.734423" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:22.136834" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:24.156385" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:24.358579" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:24.761100" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:26.781002" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:26.982772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:27.384960" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:29.404656" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:29.606276" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:30.008675" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:32.029019" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:32.230722" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:32.632915" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:34.652574" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:34.855088" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:35.257647" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:37.276878" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:37.478839" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:37.881240" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:39.896713" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:40.098624" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:40.500684" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:42.518975" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:42.720937" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:43.122992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:45.141487" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:45.343160" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:45.745790" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:47.765525" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:47.966991" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:48.369314" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:50.387128" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:50.589029" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:50.991290" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:53.013773" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:53.215226" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:53.617555" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:55.636054" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:55.837462" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:56.239855" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:58.259837" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:58.461610" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:08:58.863992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:00.882595" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:01.084349" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:01.486559" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:03.509019" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:03.710680" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:04.112709" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:06.131547" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:06.333229" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:06.735295" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:08.755885" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:08.957444" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:09.359317" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:11.379227" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:11.580916" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:11.982900" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:14.002028" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:14.203998" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:14.606284" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:16.625048" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:16.826517" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:17.229034" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:19.249042" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:19.450618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:19.852912" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:21.872038" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:22.074473" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:22.476947" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:24.496417" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:24.698195" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:25.100323" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:27.119243" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:27.320686" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:27.722840" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:29.739047" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:29.941320" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:30.343340" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:32.362292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:32.563797" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:32.965960" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:34.985839" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:35.187958" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:35.590266" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:37.610546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:37.812947" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:38.215182" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:40.238179" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:40.440096" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:40.842456" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:42.861865" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:43.063461" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:43.465482" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:45.486276" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:45.687887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:46.090090" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:48.108494" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:48.310279" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:48.712478" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:50.734274" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:50.936120" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:51.338262" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:53.356292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:53.558058" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:53.960297" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:55.981217" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:56.182856" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:56.584938" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:58.602202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:58.803813" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:09:59.205948" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:01.224558" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:01.426243" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:01.828631" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:03.846376" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:04.047964" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:04.450298" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:06.472033" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:06.673592" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:07.075799" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:09.097869" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:09.299981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:09.702409" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:11.719649" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:11.921656" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:12.324014" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:14.342475" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:14.543946" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:14.945944" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:16.965965" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:17.167927" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:17.570147" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:19.589581" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:19.791177" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:20.193256" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:22.212561" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:22.414638" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:22.816961" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:24.831259" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:25.033129" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:25.435853" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:27.456554" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:27.658176" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:28.060520" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:30.080530" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:30.281971" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:30.684463" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:32.704122" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:32.906818" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:33.309549" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:35.328481" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:35.530207" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:35.932903" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:37.955943" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:38.157396" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:38.559664" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:40.581834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:40.783703" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:41.186221" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:43.205318" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:43.407237" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:43.809445" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:45.830442" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:46.032001" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:46.434293" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:48.453981" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:48.655601" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:49.058122" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:51.079374" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:51.280887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:51.683647" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:53.703322" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:53.904618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:54.307261" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:56.326459" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:56.528603" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:56.930713" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:58.950152" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:59.151930" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:10:59.554398" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:01.573884" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:01.775532" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:02.177900" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:04.197162" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:04.399121" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:04.801266" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:04.817438" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:05.018780" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:05.420891" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:06.437571" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:06.639374" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:07.042018" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:08.058402" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:08.260362" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:08.662499" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:09.679524" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:09.881644" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:10.284250" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:11.299452" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:11.501264" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:11.903867" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:12.920936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:13.122807" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:13.524988" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:14.541843" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:14.743946" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:15.146450" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:16.163126" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:16.365257" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:16.767658" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:17.783258" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:17.984826" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:18.386987" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:19.402935" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:19.608715" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:20.011167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:21.026472" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:21.228151" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:21.630445" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:22.643639" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:22.845383" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:23.247885" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:24.264487" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:24.466597" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:24.868909" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:25.885247" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:26.087133" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:26.489450" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:27.507985" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:27.709965" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:28.112512" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:29.129711" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:29.331538" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:29.733910" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:30.749685" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:30.951915" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:31.354208" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:32.368499" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:32.570253" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:32.972677" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:33.990044" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:34.191459" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:34.594084" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:35.609544" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:35.811415" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.217507" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.234023" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.435241" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:36.837898" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-15T20:11:37.157501" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:37.358963" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:37.760848" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:38.777418" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:38.979309" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:39.382136" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:40.399852" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:40.601631" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:41.003862" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:42.019280" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:42.221045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:42.623301" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-15T20:11:43.411813" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-15T20:11:43.613162" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-15T20:11:44.015470" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.185', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
</errors>
</robot>
